关于ssh设置免口令登录

考虑这个问题:

  A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?

  今天搞了一下ssh的免口令登录,让我联想到这个问题.

  显然这个问题应该是以ssh的RSA加密过程抽象出来的.A和B代表要通信的双方. C代表通信过程中可能存在的第三方,随时待命截获未加密的信息.两把锁代表AB各自的公钥,钥匙代表AB双方的私钥.

  而设置ssh免口令登陆的过程也像极了问题的解答.

问题描述: 两台计算机(计算机名为node1和node2, 其中用户名分别为user1和user2)构成局域网, 因为MPI并行计算要ssh实现免口令远程登陆.

1. 修改各个节点的hosts文件, 如下:

192.168.1.101           node1 server
192.168.1.102          node2

2.各个节点生成各自的公钥和私钥

 $ ssh-keygen -t rsa

各个节点运行结束后,会在主目录中出现一个.ssh隐藏目录. 目录中有id_rsa和id_rsa.pub两个文件
其中id_rsa为私钥, id_rsa.pub为公钥
在RSA算法中,公钥加密用,私钥解密用

3.现在正如问题的解答中描述的那样,把公钥放在一起. 放在一起的文件叫授权文件(authorized_keys).

  在node2上,将node2的公钥拷贝给node1

scp ~/.ssh/id_rsa.pub  user1@node1:~/.ssh/authorized_keys

这一步用U盘也可以

在node1上,将node1的公钥也写进文件authorized_keys中

cat ~/.ssh/id_rsa.pub >> authorized_keys

再将authorized_keys文件拷贝到node2中,同样也可以使用U盘

scp ~/.ssh/authorized_keys  user2@node2:~/.ssh/

4.设置authorized_keys的权限为600或者644
两个节点上:

chmod 644 ~/.ssh/authorized_keys

至此,ssh免口令登录设置完成.

检验一下: ssh  user2@node2
看是不是不再需要口令就能登录了


注意: 1.使用scp的时候要特别注意用户名,不然就是一大堆的permission denied
        2.目的主机名接冒号然后紧跟路径名,中间不要有空格
        3.一看到permission denied就以为是权限问题,然后就想用root登录,但是口令总是不对.可能跟ssh的配置文件有关
        4.也可以在ssh的配置文件中设置不需要口令登录,那样所有人都可以远程登录你的计算机了,多不安全啊,所以才搞得这么复杂?  
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值