1.生成SSH密钥对:
在window生成它们。win+R打开cmd,并使用以下命令生成SSH密钥对:
ssh-keygen -t rsa -b 2048
这将生成一个2048位的RSA密钥对,默认情况下,公钥将存储在 ~/.ssh/id_rsa.pub,私钥将存储在 ~/.ssh/id_rsa。window下的~一般为C:\Users\用户\。
2.将公钥复制到目标服务器:
将公钥复制到目标服务器上,以便将其添加到SSH授权列表中。使用以下命令将公钥复制到目标服务器,其中 username 是目标服务器上的用户名,server_address 是目标服务器的IP地址或主机名:
ssh-copy-id username@server_address
输入目标服务器的密码以进行身份验证,这自动将公钥复制到目标服务器的 ~/.ssh/authorized_keys 文件中。
如果 ssh-copy-id 命令不可用,可以手动将公钥内容添加到目标服务器的 ~/.ssh/authorized_keys 文件中。
cat ~/.ssh/id_rsa.pub | ssh username@server_address 'cat >> ~/.ssh/authorized_keys'
或者直接复制公钥的内容到目标服务器的 ~/.ssh/authorized_keys 文件中。
3.配置Xshell连接:
打开Xshell,并创建一个新的SSH会话配置。在会话配置中,进行以下设置:
主机地址:输入目标服务器的IP地址或主机名。
端口:默认SSH端口是22。
用户名:输入您在目标服务器上的用户名。
身份验证方法:选择"Public Key"或"SSH Key"。
私钥文件:点击"Browse"按钮,然后选择本地计算机上的私钥文件(通常是C:\Users\41314\.ssh\id_rsa)。
4.保存会话配置:
在会话配置中完成设置后,点击"OK"或"Save"来保存会话配置。
5.连接到服务器:
双击会话配置或点击"Connect"来连接到服务器。如果一切设置正确,Xshell将使用SSH密钥进行身份验证,并登录到目标服务器,无需输入密码。
6.仅能密钥登录(可选)
编辑服务器的 SSH 配置文件 (/etc/ssh/sshd_config) 来禁用密码认证。
sudo vim /etc/ssh/sshd_config
在配置文件中,找到以下行并进行更改:
将 PasswordAuthentication 更改为 no。
确保 PubkeyAuthentication 是 yes(这通常是默认值)。
确保 ChallengeResponseAuthentication 是 no。
确保 PermitRootLogin 是 without-password(较新的系统可能是prohibit-password) 以禁止 root 用户使用密码登录。
文件的相关部分:
```
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
PermitRootLogin without-password
```
重启 SSH 服务:更改配置文件后,需要重启 SSH 服务以使更改生效。
sudo systemctl restart sshd
测试密钥登录:在禁用密码登录之前,务必先测试 SSH 密钥登录是否正常工作。从客户端机器尝试使用 SSH 密钥登录到服务器。
ssh username@server_ip
请确保在禁用密码登录之前测试密钥登录,以避免意外失联。。。
评论区