All posts

Windows 终端免密登录远程 Linux

参考链接

Windows使用powershell或者cmd ssh免密码远程连接Linux – 姿势小王子
本地终端使用ssh key免密码连接vps-搞机技术-姿势论坛—姿势小王子

流程备份

思路:本地终端生成公钥文件,将公钥文件上传到服务器,服务器生成验证文件,服务器修改配置允许密钥连接,还可以禁用密码登陆。

  1. 配置文件放在:C:\Users\用户名.ssh 该目录下,如果没有自行创建,文件名为 config ,没有后缀。
  2. 本地终端生成公钥,执行一下命令
    ssh-keygen -t rsa
    在 .ssh 文件夹生成:id_rsa 和 id_rsa.pub 两个公钥文件,记得存放好。
  3. 将 id_rsa.pub 公钥文件上传到服务器,可以用 scp 命令或者 FTP 工具。

#本地终端进入 .ssh 文件夹
cd .ssh

#上传公钥文件
scp -P 22 id_rsa.pub root@ip地址:/root/.ssh
# -P 端口,id_rsa.pub 需要上传的本地文件,root 远程服务器的用户名,/root/.ssh,远程服务器保存文件夹
服务器生成验证文件:#进入服务器的 .ssh 文件夹
cd .ssh

#生成验证文件 authorized_keys
cat id_rsa.pub > authorized_keys
修改验证文件和 .ssh 文件夹的权限:chmod 600 authorized_keys
chmod 700 ~/.ssh
服务器修改 ssh 配置允许密钥连接:vim /etc/ssh/sshd_config
在最后面添加配置参数:

RSAAuthentication yes
PubkeyAuthentication yes
如果需要禁用密码登录,建议尝试使用密钥登录后再来修改:

PasswordAuthentication no
重启 sshd 服务是配置生效:

service sshd restart
  1. 本地终端远程连接服务器:
ssh root@ip地址 -p 22 -i .ssh/id_rsa
# root 远程VPS用户名,-p 端口,-i 公钥路径
  1. 本地终端配置文件 config,没有就自己创建一个,内容:
#这三行就不会创建knownhost文件,服务器重装之后,就不用删除旧的信息。
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null

Host tx1 #别名 ssh 这个别名就可以连接了
HostName xxx.xxx.xxx.xxx #服务器 ip 地址
User root #服务器登录用户名
Port 22 #端口
IdentityFile ~\.ssh\id_rsa #默认使用这个私钥文件登录,这一行可以不写,如果使用其他的密钥文件则需要写一下路径
  1. ssh连接:
ssh 别名
示例:ssh txl

Discussion

No comments yet