linux通过ssh登录其他服务器,不用输入密码

由于使用java ganymed-ssh2.jar来操作集群中的节点服务器,ssh -tt userName@ip,遇到要输入密码,ganymed-ssh2没找到输入密码的方法,所以只能从ssh服务器解决。

其实方法很简单,就是通过配置ssh来达到不用输入密码。

下面来说说方法:

假设有A(ip:192.168.52.1)、B(ip:192.168.52.2)两台服务器,都是Linux系统,A服务器可以使用 ssh [email protected]登录到B服务器,要输入密码。

在A服务器:

[[email protected] ~] $ ssh-keygen -t rsa (连续三次回车,会在当前目录下生成id_rsa、id_rsa.pub、known_hosts三个文件,即在本地生成了公钥和私钥) 
[[email protected] ~] $ ssh [email protected] "mkdir .ssh;chmod 700 .ssh" (在B服务器新建.ssh文件夹,权限)
[[email protected] ~] $ scp ~/.ssh/id_rsa.pub [email protected]:.ssh/id_rsa.pub(把A的公钥通过scp发送到B服务器的.ssh文件夹下)
在B服务器:

[[email protected] ~] $ touch .ssh/authorized_keys
[[email protected] ~] $ cat .ssh/id_rsa.pub >> .ssh/authorized_keys (将id_rsa.pub的内容追加到 authorized_keys中) 

这样再在A服务器:ssh [email protected]登录B服务器就不需要输入密码了


如果可以登录,但是还是要输入密码,则在B服务器shan

[[email protected] ~] $ chmod 700 ~/.ssh
[[email protected] ~] $ chmod 600 ~/.ssh/authorized_keys






你可能感兴趣的:(linux)