本文已参与「新人创作礼」活动,一起开启掘金创作之路。\
2:背景
为建立在ssh协议上的程序也不需要输入密码就可以运行,比如我的使用场景就是就是需要从将文件(file)从一台主机拷贝到另一台主机,利用的是scp(secure copy)这个command,scp是建立在ssh之上的,所以当你需要使用scp的时候,如果你没有配置ssh免密的话,那么每当你用一次scp,就需要输入一次remote sever的密码,这将极大消耗我们的耐心及浪费我们的时间!
主机A:192.168.198.131
主机B:192.168.198.132
两种命令方式
1、简洁操作
主机A免密码登录主机B:将A的公钥上传到主机B
- 在主机A创建密钥对
ssh-keygen #创建证书
#然后均回车(选择默认)
- 将公钥文件上传至免登录主机B
- ssh-copy-id -i ~/.ssh/id_rsa.pub -p 50028 192.168.198.132(端口不是22的情况)
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.198.132
- A可以免密码登录B
2:手动拷贝
节点间的无密码访问是通过配置ssh 公钥认证来实现的。
- 生成了私钥 id_dsa 和公钥 id_dsa.pub,具体操作方法如下。
ssh-keygen -t rsa -P ''
-P表示密码,-P ” 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
- 把A机~/.ssh/id_rsa.pub 复制到B机的 /root/.ssh/authorized_keys文件里,先要在B机上创建好 /root/.ssh目录
scp ~/.ssh/id_rsa.pub root@192.168.198.131:/root/.ssh/authorized_keys
- **authorized_keys的权限要是600!!!**
只有用户自己有写权限。否则验证无效
[root@B ~]# chmod 600 /root/.ssh/authorized_keys
- 检查是否可以直接(不需要密码)登录其他节点。
如能两两之间不需要密码登录其他节点,则表明配置成功。
问题答疑 /usr/bin/which: no ssh-copy-id in 和ssh: Could not resolve hostname