简单几步,实现无需输入密码直接ssh或sftp到另外一个服务器:
- 发起ssh或sftp的机器C(假设为192.168.0.2)
- 被ssh或sftp的机器S(假设为192.168.0.3)
- 用户为:root
基本原理:
在C生成一对公钥和私钥,私钥放在C,公钥上传到S
1,在C中:生成公钥和私钥
cd /root
mkdir .ssh (如果没有这个目录)
cd .ssh
ssh-keygen -t rsa (有提示直接按回车)
(生成了两个文件:私钥:id_rsa、公钥:id_rsa.pub)
2,在S中:配置sshd 服务
vim /etc/ssh/sshd_config
----------------------------
AuthorizedKeysFile .ssh/authorized_keys
----------------------------
ssh-keygen -t rsa (有提示直接按回车)
(生成了两个文件:私钥:id_rsa、公钥:id_rsa.pub)
2,在S中:配置sshd 服务
vim /etc/ssh/sshd_config
----------------------------
AuthorizedKeysFile .ssh/authorized_keys
----------------------------
3、把C中id_rsa.pub文件的内容拷贝追加到S的authorized_keys文件中
或直接拷贝文件: rsync -avzuP -e "ssh -p6022" 192.168.0.2:/root/.ssh/authorized_keys .
注意:拷贝的时候不要有换行符号!直接在终端拷贝会出现,比较难发现!
4,在C中:测试效果
ssh -l root -p6022 192.168.0.3
sftp root@192.168.0.3