【开发工具】VScode使用OpenSSH远程Linux服务器设置

144 阅读3分钟

一、Linux服务器端设置

  1. Linux安装openssh服务
    apt install openssh-server openssh-client
  1. 配置ssh服务服务器
    vim /etc/ssh/sshd_config  # 在文件中添加所需配置
    
    Port 8080
    PubkeyAuthentication yes 
    PermitRootLogin yes
    RSAAuthentication yes  # 默认不存在
    AuthorizedKeysFile .ssh/authorized_keys  # ssh文件位置,此项默认设置相同
    PasswordAuthentication yes  # 是否使用密码认证
    AuthenticationMethods publickey  # 登录方法
  • 监听端口:默认端口为22,可以通过更改Port 22来修改。
  • 允许或禁止root登录:通过PermitRootLogin no禁用root登录,提高安全性。
  • 密钥认证:为了提高安全性,可以启用公钥认证并禁用密码认证。设置PubkeyAuthentication yesPasswordAuthentication no
  • 监听地址:如果你只想让SSH在特定的IP地址上监听,可以设置ListenAddress
  • 登录告警信息:可以通过Banner指令指定一个文件,当用户登录时显示该文件的内容,作为安全警告或法律声明。
  1. 在Linux上开启ssh服务
# 使用 systemctl 或 sysvinit 或 /etc/init.d 管理服务
systemctl start/enable/status sshd  
service sshd start/enable/status
/etc/init.d/ssh start/enable/status
# 开启服务/设置开机自启/检查服务运行状态

sudo netstat -tulpn | grep ssh  # 查看SSH服务的监听端口
ufw allow 22/tcp  # 确保防火墙规则允许SSH服务的端口(默认是22)

二、Windows客户端设置

  1. 配置ssh客户端服务

首先确保主机安装OpenSSH并已启动ssh服务, 在C:\Users\User\.ssh\config文件中进行配置:

Host 服务器主机名称
    HostName 服务器IP地址
    User 登录账户
    Port ssh服务端口
    PermitLocalCommand yes
    PreferredAuthentications publickey
  1. 配置密钥登录

在命令行生成密钥,密钥对会保存到 C:\Users\User\.ssh 目录下,id_rsa为私钥,id_rsa.pub为公钥。

ssh-keygen 
    -b 指定创建密钥的长度位数
    -e 读取OpenSSH的私钥或公钥文件
    -f 指定用来保存密钥的路径及文件名
    -i 读取未加密的SSH-v2兼容的私钥/公钥文件,在标准输出显示OpenSSH兼容的私钥/公钥
    -l 显示公钥文件的指纹数据
    -t 指定密钥创建的类型,SSH-v1可选的值为rsa1,SSH-v2可选的值为rsa或dsa,默认rsa
    -r 显示指定主机公钥文件的SSHFP指纹资源记录
    -q 静默模式生成
    -v 详细模式生成
    -N 指定一个新密语
    -P 提供(旧)密语
    -C 添加注释
    -F 搜索known_hosts文件中指定的主机名,列出发现的任何事件
    
 ssh-keygen -f C:\Users\User\.ssh\ubuntu -C "10008" -b 2048 -t rsa
  1. 将公钥配置到服务器内

客户端创建的公钥内容添加到服务器端的authorized_keys文件中。

# 方法一:使用命令
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.24.1.236
# 
type $env:USERPROFILE\.ssh\ubuntu.pub | ssh -tt "root@192.168.13.155" "cat >> .ssh/authorized_keys"
# 方法二:登录服务器操作
ssh root@192.168.13.155  
vim ~/.ssh/authorized_keys  
    # root用户为 /root/.ssh/authorized_keys,其他用户为 /home/用户名/.ssh/authorized_keys

# 若没有 /.ssh 文件夹,或 authorized_keys 文件,则手动创建,并且赋予文件权限:
 chmod 700 ~/.ssh/
 chmod 600 ~/.ssh/authorized_keys
  1. 免密登录服务器
ssh root@192.168.13.155