环境:
192.168.2.10
192.168.2.11
实现:2.10 ssh无需密码登录到2.11
在2.10 ssh到2.11机器上,需要密码,这样对一些脚本工作不方便,因为需要密码,也就是需要人工干预。此前用的方法是拷贝authorized_keys里面(记不清了,以前搞过),最近发现一个命令ssh-copy-id很方便:
在192.168.2.10机器上操作
1)zwf用户,cd ~,运行:ssh-keygen -t rsa
2)然后拍两下回车(均选择默认)
3)运行: ssh-copy-id -i .ssh/id_rsa.pub zwf@192.168.2.11
注:由于服务器修改了ssh端口号(你懂!?)所以此命令需要修改一下
ssh-copy-id ‘-p2222 -i .ssh/id_rsa.pub zwf@192.168.2.11’
一定用单引,否则会报错误
(Pseudo-terminal will not be allocated because stdin is not a terminal.
ssh: umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys: Name or service not known)
4)再输入2.11机器上的zwf密码
此时,再ssh 到2.11机器,则不需要密码了。相互之间scp,也不需要密码。rsync也无需。
此方法的好处是无需修改/etc/ssh/sshd_config配置文件,之前我发的文章需要修改sshd_config文件。
接下来,就可以在不输入密码的情况下在远程主机私执行命令了。命令格式如下:
ssh 远程用户名@远程主机名或IP地址 '远程命令或者脚本'
ssh
user@HOSTD
'hostname'
ssh
user@HOSTD
'/home/user/script/test.sh'
如果使用SSH远程执行命令包含在shell脚本中,执行中带参数:
ssh
user@HOSTD "
/home/user/script/test.sh $1"