1. 生成密钥对
使用ssh-keygen
命令生成密钥对:
ssh-keygen -t rsa
这将会生成一个私钥(默认名为id_rsa
)和一个公钥(默认名为id_rsa.pub
)。
2. 复制公钥到服务器
有多种方法可以将公钥复制到服务器上,以下是两种常见的方法:
方法一:使用ssh-copy-id
命令
如果你的本地机器上安装了ssh-copy-id
工具,你可以使用它来自动将公钥复制到远程服务器上:
ssh-copy-id username@remote_server_ip
将username
替换为你的服务器用户名,remote_server_ip
替换为你的服务器IP地址或主机名。执行此命令时,系统会提示你输入username
的密码。输入正确的密码后,ssh-copy-id
会自动将你的公钥追加到远程服务器上的~/.ssh/authorized_keys
文件中。
方法二:手动复制公钥
如果ssh-copy-id
不可用,你可以手动复制公钥内容并将其追加到服务器的~/.ssh/authorized_keys
文件中:
- 打开本地机器上生成的公钥文件(通常是
~/.ssh/id_rsa.pub
)。 - 复制公钥文件中的所有内容。
- 使用SSH登录到远程服务器:
ssh username@remote_server_ip
- 在服务器上,确保
~/.ssh
目录存在并具有正确的权限(通常为700)。如果不存在,可以使用以下命令创建并设置权限:mkdir -p ~/.ssh chmod 700 ~/.ssh
- 将公钥内容追加到
~/.ssh/authorized_keys
文件中。如果文件不存在,你需要先创建它:
或者,如果你已经复制了公钥内容并保存在剪贴板中,你可以直接使用echo "你的公钥内容" >> ~/.ssh/authorized_keys
pbcopy
(在macOS上)或xclip
(在某些Linux发行版上)来粘贴内容:
或者对于使用pbcopy < ~/.ssh/id_rsa.pub | ssh username@remote_server_ip 'cat >> ~/.ssh/authorized_keys'
xclip
的系统:xclip -o | ssh username@remote_server_ip 'cat >> ~/.ssh/authorized_keys'
- 设置
~/.ssh/authorized_keys
文件的权限为600,以确保只有所有者可以读写该文件:chmod 600 ~/.ssh/authorized_keys
3. 测试连接
完成上述步骤后,你可以尝试使用SSH密钥对连接到服务器:
ssh -i ~/.ssh/id_rsa username@remote_server_ip
如果一切正常,你将无需输入密码即可登录到服务器。如果出现问题,请检查服务器上的SSH日志(通常位于/var/log/auth.log
或/var/log/secure
),以获取有关连接尝试的详细信息。
记得妥善保管你的私钥,不要将其分享给任何人。私钥的安全性对于SSH密钥认证至关重要。
标签:公钥,keys,authorized,登陆,linux,服务器,id,ssh,密钥 From: https://blog.csdn.net/kk_flying/article/details/137357107