Linux服务器 scp 不需要密码配置与密钥转换(id_rsa->ppk)
案例:
▲服务器A对服务器B、C进行ssh连接,免输入密码
或
▲服务器A向服务器B、C复制文件(源文件在服务器A上),免输入密码
主机A:192.168.0.221
主机B:192.168.0.227
主机C:192.168.0.228
1、首先每个服务器上执行一下命令脚本(主机A、B、C都执行,目的是生成公钥和私钥)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
/usr/bin/ssh-keygen -t rsa (连续回车,即在本地生成了公钥和私钥,不设置密码)
记住enter passphrase的别输入,否则登录的时候还是得输入密码密钥连接密码
2、然后再需要批量分发的主机上执行(目标主机B、C)
touch ~/.ssh/authorized_keys
方法一:
ssh 192.168.0.221 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(上面这个命令的意思貌似是:将服务器192.168.0.221(主机A)上文件~/.ssh/id_rsa.pub的内容,追加到本地(主机B、C)文件~/.ssh/authorized_keys中)
说明:192.168.0.221是分发主机的IP地址(源主机A)
root@192.168.0.221's password: xxxxx (在需要输入密码的时候输入密码)
方法二(也是一个比较简单的方法):(推荐)
直接登录到服务器192.168.0.221(主机A)上使用命令cat ~/.ssh/id_rsa.pub查看内容(公钥),将内容复制追加到主机B、C的文件~/.ssh/authorized_keys中(请注意不要删除或覆盖该文件中已有的内容)
3、在需要分发的主机执行(目标主机B、C)
chmod 600 ~/.ssh/authorized_keys
4、在分发主机验证(源主机A)
从主机A连接到主机B测试 ssh 192.168.0.227
从主机A连接到主机C测试 ssh 192.168.0.228
5、在分发主机(源主机A)上常见 scp.sh 文件,一般将文件设定到定时脚本 /etc/crontab 中,或单独手工执行。
从分发主机192.168.0.221向 192.168.0.227、192.168.0.228 分发文件
scp -r /usr/local/adsit/webapps/preroll/WEB-INF/classes root@192.168.0.227:/home/adsit/
scp -r /usr/local/adsit/webapps/preroll/WEB-INF/classes root@192.168.0.228:/home/adsit/
在分发主机执行 scp.sh 实现拷贝功能。
注意:
如果遇到登录失败的情况:我用的是centos版本是6.7,centos 具体不清楚从6点几版本开始对网络管理相当严格,需要在原来的基础上关闭selinux
使用命令 getenforce 查看 setlinux 状态
如果不是Disabled,则需要到/etc/selinux/config下,把SELINUX=enforcing 修改为 SELINUX=disabled,重启机器,ok。
对于暂时不能重启机器的,使用命令 setenforce 0 也可以,然后查看状态为 Permissive
(因为这个问题我是折腾了半天)
Linux私钥id_rsa转换成ppk
在linux下生成的ssh私钥为id_rsa,而很多软件是需要的私钥ppk格式,这里简单说下id_rsa怎么转换到ppk
好了大家可以看到已经把原来rsa格式的私钥转换成ppk的了,可以在winscp中导入使用了.
(转换完成)