如何将其他电脑/朋友提供的SSH密钥添加至Ubuntu服务器?
如何将他人的SSH公钥添加到Ubuntu服务器
没问题,这其实是SSH密钥管理里很常见的操作,我来一步步教你怎么做,确保你能顺利完成:
先确认前提
首先要注意:你朋友发给你的必须是SSH公钥文件(通常后缀是.pub,内容开头会是ssh-rsa、ssh-ed25519这类标识)。如果他不小心发了私钥(没有.pub后缀,内容开头是-----BEGIN OPENSSH PRIVATE KEY-----),千万不要用!让他重新生成公钥发给你——私钥是绝对不能共享的。
步骤1:登录你的Ubuntu服务器
你可以通过SSH远程登录,或者直接在服务器的终端操作,确保你有服务器的管理员权限(或者至少是你要给朋友授权的用户权限)。
步骤2:确保.ssh目录和authorized_keys文件存在且权限正确
SSH对密钥文件的权限要求非常严格,权限太松会直接拒绝登录,所以先做好这一步:
- 如果你的用户目录下没有
.ssh文件夹,先创建它并设置权限:mkdir -p ~/.ssh chmod 700 ~/.ssh - 创建(或确认存在)
authorized_keys文件,这是存储所有允许登录的公钥的地方:touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys - 还要确保这些文件和目录的所有者是你的用户(比如你用
ubuntu用户登录),如果不是,执行:
把chown -R ubuntu:ubuntu ~/.sshubuntu换成你实际的用户名即可。
步骤3:将朋友的公钥添加到authorized_keys里
这里分两种情况:
情况A:你直接复制了朋友发来的公钥文本
打开authorized_keys文件,把公钥内容粘贴到新的一行(注意公钥是一整行,不要拆分换行):
nano ~/.ssh/authorized_keys
粘贴完成后,按Ctrl+O保存,Ctrl+X退出编辑器。
情况B:朋友把.pub文件发给你了
先把这个公钥文件传到你的服务器上(比如用scp工具),然后执行命令把内容追加到authorized_keys:
cat /path/to/friends_public_key.pub >> ~/.ssh/authorized_keys
把/path/to/friends_public_key.pub换成你实际的文件路径。
步骤4:测试登录
让你的朋友尝试用他的私钥登录你的服务器,命令格式是:
ssh your_username@your_server_ip
如果他能顺利登录,说明配置成功了;如果遇到权限错误,回头检查一下.ssh目录和authorized_keys的权限是否符合要求。
内容的提问来源于stack exchange,提问作者Kenny Horna
相关产品推荐
相关产品推荐

