科技颠覆者 发表于 2024-7-11 19:41:12

Linux和Windows配置公钥到服务器上【免密登录/传输文件】

1.Windows配置公钥到服务器上

如果你在本地使用的是 Windows ,要将本地天生的 SSH 公钥复制到长途服务器上,可以按照以下步骤举行操作:
1.1.天生SSH密钥对(如果尚未天生):

在 Windows 11 上,你可以使用 Git Bash 大概 Windows Terminal 来天生 SSH 密钥对。


[*] 打开 Git Bash 大概 Windows Terminal。
[*] 输入以下命令来天生 SSH 密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按照提示操作,选择密钥文件存储位置,默认环境下将会存储在 C:\Users\YourUsername\.ssh\id_rsa 和 C:\Users\YourUsername\.ssh\id_rsa.pub。
1.2.复制公钥到长途服务器:

在 Windows 上,你可以使用 ssh-copy-id 来简化复制公钥的过程,但通常它并不是默认安装的。因此,你可以手动复制公钥到长途服务器。


[*] 打开你的 SSH 公钥文件 id_rsa.pub。你可以使用文本编辑器(如 Notepad++)打开该文件。
[*] 复制公钥的内容。
1.3.手动复制公钥到长途服务器:



[*] 登录到长途服务器。你可以使用 SSH 客户端(如 PuTTY)毗连到服务器。
[*] 创建 SSH 目录(如果不存在),并设置权限:
mkdir -p ~/.ssh
chmod 700 ~/.ssh


[*]在长途服务器上打开 authorized_keys 文件,并将本地公钥的内容粘贴到文件的末尾。你可以使用 nano 大概 vim 等编辑器来举行编辑:
nano ~/.ssh/authorized_keys
vim ~/.ssh/authorized_keys
然后粘贴本地公钥的内容并保存文件。


[*]设置 authorized_keys 文件的权限:
chmod 600 ~/.ssh/authorized_keys
1.4.测试SSH毗连:

关闭当前的 SSH 毗连会话,然后实验使用 SSH 密钥登录到长途服务器:
ssh username@server_ip


如果乐成毗连到服务器而不需要输入密码,则说明公钥复制乐成。
通过这些步骤,你应该能够在 Windows大将本地天生的 SSH 公钥复制到长途服务器,并使用 SSH 密钥举行无密码登录。
2.Linux配置公钥到服务器上

2.1天生SSH密钥对(如果还没有的话)

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示操作,通常会将密钥对存储在 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub。
2.2.将公钥复制到长途服务器:

1. 你可以使用 ssh-copy-id 命令将公钥复制到长途服务器。

假设你的用户名是 username,服务器所在是 server_ip:
ssh-copy-id username@server_ip
体系会提示输入长途服务器的密码。输入密码后,ssh-copy-id 会自动将你的公钥追加到长途服务器上的 ~/.ssh/authorized_keys 文件中。
2. 手动复制公钥(如果没有 ssh-copy-id)

如果你的体系没有 ssh-copy-id 命令,你可以手动将公钥复制到长途服务器。

[*]先检察你的公钥内容:复制显示出来的公钥内容。
cat ~/.ssh/id_rsa.pub

[*]用SSH登录到长途服务器:输入密码登录。
ssh username@server_ip



[*]在长途服务器上创建 .ssh 目录(如果不存在):
mkdir -p ~/.ssh
chmod 700 ~/.ssh

[*]编辑或创建 authorized_keys 文件,并将公钥追加到文件中:
echo "your_public_key_content" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3.测试毗连:

退出长途服务器并实验使用SSH密钥登录:
ssh username@server_ip


如果乐成登录而不需要输入密码,则说明公钥复制乐成。这些步骤完成后,你应该能够使用SSH密钥举行无密码登录到长途服务器。
4.大概出现警告

这个警告提示是由于长途主机的身份验证信息发生了厘革,大概是由于以下缘故因由之一:


[*]主秘密钥已更改:长途服务器的 SSH 密钥大概已经更新或更改。
[*]中间人攻击:大概有恶意第三方在你与服务器之间举行监听。
https://i-blog.csdnimg.cn/direct/7791d14d106142eb8baea8b1199f1123.png
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!   @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:rorOjL7yjvcVHHyhMGHlXrI/ivIc6ufFCz5Ic2eEVbA.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:5
remove with:
ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.1.1"
Host key for 192.168.1.1 has changed and you have requested strict checking.
Host key verification failed.
解决方法:

[*]更新 known_hosts 文件:
如果你信托服务器的新密钥,可以实行以下命令更新 known_hosts 文件。请确保替换 “192.168.1.1” 为现实的服务器IP所在。
ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.2.126"
然后再次实验毗连服务器,SSH 将会询问你是否接受新的密钥。

[*]联系体系管理员:
如果你不确定这个警告的缘故因由,大概认为大概存在安全题目,建议联系体系管理员进一步确认服务器的状态和密钥更改的缘故因由。

[*]取消严格主秘密钥检查(不推荐):
如果你确认服务器的更改是合法的,可以在 SSH 毗连时添加 -o StrictHostKeyChecking=no 参数到临时取消严格主秘密钥检查。但这会增加潜在的安全风险,只适用于临时调试或特定环境下使用。
ssh -o StrictHostKeyChecking=no user@192.168.2.126

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux和Windows配置公钥到服务器上【免密登录/传输文件】