一、生成SSH公匙和私匙
首先,我们需要在本地生成SSH公匙和私匙。
在终端中输入以下命令:
ssh-keygen -t rsa
按照提示输入密钥保存的文件名和密码,或者直接按回车键使用默认值。命令执行完毕后,终端中会显示SSH公匙和私匙的路径。
生成SSH公匙和私匙的目的在于将SSH公匙存储到需要连接的服务器上,以便在连接服务器时进行验证。
二、将SSH公匙存储到远程服务器上
将本地生成的SSH公匙存储到需要连接的服务器上需要使用SSH的文件传输功能。在终端中输入以下命令:
ssh-copy-id username@remote_host
其中,username为连接远程主机的用户名,remote_host为远程主机的IP地址或者域名。
运行命令后,系统会提示输入远程主机的密码。输入密码后,系统会将本地电脑上生成的SSH公匙复制到远程主机的~/.ssh/authorized_keys目录下。
三、测试SSH免密登录是否成功
在终端中输入以下命令:
ssh username@remote_host
如果SSH免密登录设置成功,则会直接登录到远程主机上的终端界面。
四、如果SSH免密登录未成功,可以尝试以下方法
1、检查本地电脑上的SSH公匙和私匙是否生成成功,以及存储的路径是否正确。
2、检查远程主机的~/.ssh目录是否存在,以及对应的authorized_keys文件是否存在。
3、如果authorized_keys文件已经存在,则检查文件权限是否正确,需要具备读写权限,否则需要执行以下命令更改权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
4、如果以上步骤都没有问题,可以尝试修改SSH服务的配置文件。在终端中输入以下命令打开SSH配置文件:
sudo nano /etc/ssh/sshd_config
将以下两行的注释符号#去掉:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
保存文件并退出,执行以下命令重启SSH服务:
sudo service ssh restart
重启完毕后,再次测试SSH免密登录是否成功。