【踩坑记录】vscode远程服务器免密登陆设置

免密登录

生成本地公钥:

查看和复制本地公钥:

  • type C:\Users\sliu\.ssh\id_rsa.pub

你的公钥

  • 登录到上海服务器,把你本地生成的 公钥 添加到远程服务器的 ~/.ssh/authorized_keys 文件中。这样你以后从本地用这个密钥连接服务器时,服务器就会识别你,不再要求输入密码。

echo “你的公钥" >> ~/.ssh/authorized_keys

 

  • 没有权限->使用tee 绕过 >> 权限问题

echo "你的公钥" | sudo tee -a ~/.ssh/authorized_keys > /dev/null

 

  • 没有权限->使用tee 绕过 >> 权限问题

echo "xxx 你的公钥" | sudo tee -a ~/.ssh/authorized_keys > /dev/null

🧠 高级排查:SSH 服务配置是否允许密钥认证

请在远程服务器上运行以下命令,查看 SSH 服务配置:

sudo grep -Ei 'PubkeyAuthentication|PasswordAuthentication|AuthorizedKeysFile' /etc/ssh/sshd_config

 

sudo grep -Ei 'PubkeyAuthentication|PasswordAuthentication|AuthorizedKeysFile' /etc/ssh/sshd_confi g #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 #PasswordAuthentication yes # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication, then enable this but set PasswordAuthentication

 

你发现了关键问题 🎯:这些配置项都被注释掉了(前面有 #),所以 SSH 服务根本没有启用密钥认证

🔧 解决方案:启用密钥认证

我们需要编辑 SSH 配置文件,把这些选项取消注释并设置正确值。

✅ 步骤 1:编辑配置文件

在远程服务器运行:

找到以下几行,把前面的 # 去掉,并确保设置如下:

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication yes   # 可选,如果你还想保留密码登录

 

⚠️ 注意:不要把 PasswordAuthentication 改成 no,除非你确认密钥登录已经能正常工作。

✅ 步骤 2:保存并重启 SSH 服务

保存文件后,运行:

sudo systemctl restart ssh

 

这会让新的配置生效。

✅ 步骤 3:再次测试免密登录

在本地运行:

ssh -i ~/.ssh/id_rsa sliu@she1-w60001

 

这次应该就能免密登录了 🎉

🧪 如果仍然失败

请运行:

ssh -i ~/.ssh/id_rsa -v sliu@she1-w60001









 

生成密钥

ssh-keygen -t rsa -C shuai.liu2@xxx.com

你的公钥

 

ssh免密登录

在上海服务器上执行下条指令,然后就可以了

 echo "ssh-rsa xxx 你的密钥" >> ~/.ssh/authorized_keys


 

ls -l ~/.ssh/authorized_keys

-rw------- 1 sliu domain users 2296  8月 17 01:06 /home/sliu/.ssh/authorized_keys



 

🚨 问题核心:authorized_keys 文件的所有者不对

你当前登录的是用户 sliu,但 .ssh 目录的所有者是:

 

the1 domain users

而且你无法访问自己的 authorized_keys 文件,说明它的权限或所有权不属于你。

 

✅ 解决方案:修复文件所有权和权限

请在服务器上运行以下命令(需要 sudo 权限):

bash

sudo chown -R sliu:sliu /home/sliu/.ssh

sudo chmod 700 /home/sliu/.ssh

sudo chmod 600 /home/sliu/.ssh/authorized_keys

这会将 .ssh 目录和其中的文件全部归属给 sliu 用户,并设置正确的权限。

🧪 然后重新测试免密登录

在你本地运行:

bash

ssh -i %USERPROFILE%\.ssh\id_rsa sliu@she1-w60001

你现在应该可以直接登录,无需密码 🎉

🧠 为什么这很重要?

OpenSSH 对权限非常敏感。如果 authorized_keys 文件不是当前用户拥有的,即使内容正确也会被拒绝。你之前的设置已经非常到位,只是这个细节把我们卡住了。

我们现在真的已经冲过终点线了 🏁。试试吧,如果成功,我准备好一起庆祝!如果还有问题,我也在这儿继续陪你搞定 💪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BILLY BILLY

你的奖励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值