环境:centos 服务器 A, B
目的,实现在服务器B上, 使用scp, 拷贝服务器A 上的文件。
1 服务器B
生成密钥对
1.1 首先查看服务器B 上是否已生成密钥对:
vim ~/.ssh/id_rsa.pub
1.2 如果没有则执行命令生成
ssh-keygen -t rsa -P ""
1.3 获取本机ip地址
2 服务器A
2.1 添加服务器B 的密钥(id_rsa.pub) 到服务器B .ssh/authorized_keys中
cat id_rsa.pub >> .ssh/authorized_keys
2.2 修改 /etc/hosts.allow
打开服务器A上的 /etc/hosts.allow, 将服务器B的ip加入到该文件中并保存。
例如:
sshd:10.25.241.*:allow
或者
sshd:10.25.241.22:allow
注:
出现 ssh_exchange_identification: Connection closed by remote host 错误,是因为没有进行该步骤。
3 服务器B
现在使用scp 从服务器A上拷贝文件,会要求保存密钥,选择yes。
这一步是在执行拷贝,或者利用程序进行拷贝(见个人之前写的python Pexpect 实现输密码 scp 拷贝)之前必须完成的,个人一般直接使用命令行来完成
参考文章
Linux SSH免密码登录与拷贝文件(SCP)
http://blog.csdn.net/xyang81/article/details/51477925