vscode通过ssh工具免密连接linux服务器

1.事前准备

1.1 vscode端

  • 环境:Linux或Windows均可
  • 在vscode上安装扩展Remote - SSH

1.2 服务器端

  • 升级apt-get工具并安装ssh
apt-get update
apt-get install ssh

2.配置环境

2.1主机端

  • 在主机端生成ssh秘钥,输入命令后一路enter即可
ssh-keygen -t ed25519 -C "邮箱"

在这里插入图片描述

  • 主机端打开vscode,点击左下角在这里插入图片描述符号,点击Remote-SSH: Open Configuration File…进入主机端ssh配置文件
  • 按照如下格式输入信息:
    直连:
Host 服务器名,叫什么都可以
  HostName 服务器ip地址
  User 服务器用户名
  Port 服务器需要连接的端口

跳板机

Host 服务器名,叫什么都可以
  HostName 目标服务器IP地址
  User 目标服务器用户名
  ProxyCommand 主机端ssh.exe程序路径 -W %h:%p 跳板机IP地址
  Port 目标服务器需要连接的端口

2.2服务器端

  • 在服务器端打开/etc/ssh/sshd_config文件,修改部分参数
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
  • 将主机端生成的秘钥(~/.ssh/id_rsa.pub)文件复制到服务器端(~/.ssh/authorized_keys)文件中,如果该文件不存在新建即可。
    注意,如果是跳板机登录目标服务器需要在目标服务器和跳板机两台服务器上都写入主机端的ssh秘钥文件,同时在目标服务器端写入跳板机的ssh秘钥文件,方法同上。
  • 服务器重启ssh服务
service ssh restart

如果仍然需要输入密码,则是因为authorized_keys权限有问题,不应该有组执行权限,需要调整为

cd ~/.ssh
chmod 700 .
chmod 600 authorized_keys

另,如果无法通过ssh连接docker,有可能是因为无法在docker内启动ssh,报错信息如下:
Redirecting to /bin/systemctl start ssh.service Failed to get D-Bus connection: Operation not permitted
此时应该直接使用/usr/sbin/sshd手动运行docker的ssh服务

另,如果没有/etc/ssh/内容,应该进行手动生成

Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''

3.登录

在主机端vscode上点击左下角在这里插入图片描述,点击Remote-SSH: Connect to Host…,选择服务器名即可免密登录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值