ssh相关问题

问题1

一般错误信息为:ssh: connect to host localhost port 22: Connection refused

这种错误很主要的一个原因是sshd服务没有启动,先启动sshd服务后就没有问题了。

启动sshd服务:service  sshd  start(前提条件是你已安装过ssh了)

或者防火墙阻止了sshd服务

问题2

无密码登录

首先,root修改/etc/ssh/sshd_config文件(客户端、服务器都需要更改
将“#AuthorizedKeysFile      .ssh/authorized_keys”前面的#号去掉
即,启用“AuthorizedKeysFile      .ssh/authorized_keys
(如果需要root也能ssh登录,把“#PermitRootLogin yes”前面的#号也去掉)
同样root账户下,/etc/rc.d/init.d/sshd  restart重启sshd服务使之生效
客户端中)切换到需要ssh登录的帐户下:
ssh-keygen  -t  rsa   产生公私钥对
回车   采用默认文件保存钥匙
xxxxx 回车   键入密码短语,直接回车为不建立密码短语。密码短语至少5个字符
xxxxx 回车   重复密码短语,直接回车为不建立密码短语
公私钥产生在此账户的.ssh目录中,id_rsa为私钥,id_rsa.pub为公钥
服务器)切换到需要ssh登录的帐户下:
如果服务器中尚未建立公私钥对,那么首先按照客户端的方法建立公私钥对
scp  账户名@客户端主机名或ip地址:/home/帐户名/.ssh/id_rsa.pub  /home/帐户名/
将客户端账户的公钥拷到服务器中。客户端用主机名或ip地址均可,但是需与ssh登录命令相符,建议将主机名与ip地址写入/etc/hosts中,此处用主机名即可(下同)。
yes   将客户端写入known_hosts中
输入客户端中的账户密码完成复制
cat  /home/帐户名/id_rsa.pub  >>/home/帐户名/.ssh/authorized_keys   将id_rsa.pub中的内桶添加到authorized_keys文件中,authorized_keys文件名需与sshd_config中的设置相符。
chmod  644  /home/帐户名/.ssh/authorized_keys   修改authorized_keys文件的权限,至少为644,也可更为严厉(600),不修改的话ssh无密码登录不起作用。
客户端中)切换到需要ssh登录的帐户下:
ssh  服务器主机名   登录服务器,若在服务器与客户端中的帐户名不同,则
ssh  帐户名@服务器主机名
yes    将服务器写入known_hosts中
若产生公私钥时设置了密码短语,还需要输入密码短语,为了方便,可在客户端中
ssh-add,然后输入密码短语,下次再ssh登录,无需再输入密码短语
 
关于公私钥对的一点理解:
公私钥对就像是一套钥匙和锁,公钥是锁,私钥是钥匙。私钥留在客户端中,公钥发给服务器。服务器可以有很多把锁,客户端只有一把钥匙。当客户端ssh登录服务器时,服务器会找到这个客户端发的锁,然后跟客户端要钥匙,如果钥匙是配套的,那么登录成功,反之登录失败。当然,以上是针对同一个用户说的,不同用户的公私钥对也不同,而且每次ssh-keygen产生的公私钥对也不同。
原文地址:https://www.cnblogs.com/jackhub/p/3145756.html