centlnx

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。

管理机器外网IP10.0.0.61(内网172.16.1.61) 服务器外网10.0.0.31,端口52113,内网172.16.1.31

(1)首先在所有机器上批量创建管理用户。

[root@m01 ~]#useradd oldgirl

[root@m01 ~]#echo 123456|passwd --stdin oldgirl

[root@m01 ~]#id oldgirl

(2)所有机器均切换到管理用户,并创建密钥对。

[root@m01 ~]#su – oldgirl

[oldgirl@m01 ~]$ssh-keygen -t dsa  # -t指定秘钥类型,默认为rsa

Your identification has been saved in /home/oldgirl/.ssh/id_dsa

Your public key has been saved in /home/oldgirl/.ssh/id_dsa.pub

[oldgirl@m01 ~]$pwd

/home/oldgirl

[oldgirl@m01 ~]$ll .ssh/

-rw------- 1 oldgirl oldgirl  668 Mar 24 19:40 id_dsa

-rw-r----- 1 oldgirl oldgirl  601 Mar 24 19:40 id_dsa.pub   锁

或者使用下面的命令,非交互式一键创建密钥对

  1、ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1

  2、[oldgirl@backup ~]$    echo -e "\n"|ssh-keygen -t dsa -N ""

(3)分发秘钥(锁)给需要管理的机器

[oldgirl@m01 ~]$ ssh-copy-id -i .ssh/id_dsa.pub "-p 52113 oldgirl@172.16.1.31"  注意这里是内网网段,端口已修改为52113。这里的拷贝仅仅针对公钥,它不会发送私钥。另外也可以使用scp -P去远程复制。

如果端口没有做修改,那么可以直接使用[oldgirl@m01 ~]$ssh-copy-id -i .ssh/id_dsa.pub  oldgirl@10.0.0.31,这里是外网网段。

(4)分发完秘钥之后,可以去客户机(服务器)去查看公钥信息及权限

[oldgirl@nfs01 ~]$ll .ssh/
-rw------- 1 oldgirl oldgirl 601 Mar 24 19:56 authorized_keys   #权限为600,传过来的共要文件更名为authorized_keys,这个是在ssh配置文件(/etc/ssh/sshd_conf)设置的。

(5)测试:远程使用命令查看服务器网卡

[oldgirl@m01 ~]$ssh -p52113 oldgirl@172.16.1.31 /sbin/ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:85:5E:85 

inet addr:10.0.0.31  Bcast:10.0.0.255  Mask:255.255.255.0

至此,初步实现使用ssh公钥实现免批量分发管理服务器。

相关文章: