使用 SSH 连接 Linux 服务器

本文最后更新于:2020年12月30日 早上

首先我们要在客户端(本机)生成密钥对

这里的密钥对是 Public key,具体请参考 公开密钥加密

使用命令

1
ssh-keygen -t rsa

接下来会提示让你输入一个路径来保存密钥对,默认在 ~/.ssh/id_rsa 下面生成 id_rsa(私钥)和 id_rsa.pub(公钥),如果没什么特殊需求就直接默认就好。

然后提示你输入密码(即本机使用 SSH 连接时的密码 #和服务器密码无关),也是直接回车默认为空即可。

将公钥上传到服务器上

这里以使用 SCP 为例,上传公钥 id_rsa.pub 到服务器上

1
scp ~/.ssh/id_rsa.pub [email protected]:~

将公钥追加到服务器的认证密钥中

将上传到服务器上的 id_rsa.pub 公钥追加到 authorized_keys 文件中,命令是

1
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

修改服务器的配置以启用公钥认证

修改 vi /etc/ssh/sshd_config 配置文件(如果有的话就进行修改,没有的话就添加进来)

1
2
3
4
RSAAuthentication yes        # 启用 RSA 认证(默认是注释掉的,将注释去掉,如果不是 yes,改为 yes)
PubkeyAuthentication yes # 启用公钥认证(默认是注释掉的,将注释去掉,如果不是 yes,改为 yes)
PasswordAuthentication no # 禁止密码认证 (改为 no, 默认为 yes 是用密码认证)
StrictModes no # 修改为 no, 默认为 yes. 如果不修改用 key 登陆是出现 server refused our key(如果 StrictModes 为 yes 必需保证存放公钥的文件夹的拥有与登陆用户名是相同的.“StrictModes” 设置 ssh 在接收登录请求之前是否检查用户家目录和 rhosts 文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。)

重启 SSH 服务

1
2
3
service sshd restart
# 或者
/etc/init.d/ssh restart

最后验证一下

连接服务器,这里以 SSH 客户端为例

1
ssh [email protected]

然后,就直接连上了,不需要输入密码了呢 O(≧▽≦)O