SSH免密登录远端操作系统

背景:
工作中经常需要后台登录到远端操作系统,例如windows和linux系统。比较常用的是SSH命令,它在终端就可以直接执行,然后输入远端操作系统的用户名和密码即可。
本文介绍如何通过部署SSH服务端以及合入配置两台计算机的信任关系,从而实现免密登录。

环境:
1、本地是Windows10系统
2、远端1是Windows10系统
3、远端2是Debian11 Linux系统

主要步骤:
1、给本地计算机生成密钥文件
2、给远端计算机安装SSH服务
3、配置本地计算机和远端计算机的信任关系

具体操作:
1、给本地计算机生成密钥文件
(1)打开cmd命令窗口,执行命令:

 ssh-keygen
 ps: 执行过程中一路回车键即可

在这里插入图片描述
(2)执行完成后会在当前用户路径 C:\Users\用户名\ .ssh 生成几个文件:
在这里插入图片描述

这里的id_ras.pub文件是计算机的公钥文件,先把它复制到远端计算机备用(后面建立两台计算机的信任关系会用到)

2、给远端计算机安装SSH服务

情况一:远端计算机是Windows10系统
请参考:https://blog.csdn.net/marwenx/article/details/106096790

情况二:远端计算机是Debian Linux系统

    sudo apt-get update
    sudo apt-get install ssh

3、配置本地计算机和远端计算机的信任关系

情况一:远端计算机是Windows10系统
(1)把上面本地计算机生成的id_rsa.pub 文件拷贝到远端计算机的 C:\Users\“用户名”\.ssh
目录 下,并修改文件名称为 authorized_keys

  PS:如果有多台计算机需要和此计算机建立信任关系,则把多台计算机的公钥文件内存都拷贝到authorized_keys文件中即可

(2) 再修改 C:\ProgramData\ssh\sshd_config 配置文件:

ps:这里的ProgramData文件夹默认是是隐藏文件夹,可以取消隐藏或者通过搜索找到

确保以下3条没有被注释,后边的yes或no要写对

PubkeyAuthentication yes  #启用SSH密钥认证
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes #启用输入密码认证

确保以下2条注释掉

#Match Group administrators
#AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

(3)以管理员用户打开powershell软件,再重启ssh服务

   net stop sshd
   net start sshd
   Set-Service sshd -StartupType Automatic  #设置开机自启动

情况二:远端计算机是Debian Linux系统
(1)把上面本地计算机生成的id_rsa.pub 文件拷贝到远端计算机的 ~/.ssh 文件夹下,然后

   cd ~/.ssh
   cat id_rsa.pub >> authorized_keys

(2)修改/etc/ssh/sshd_config配置文件,如下几个参数修改如下:

 PubkeyAuthentication  yes
 AuthorizedKeysFile  .ssh/authorized_keys
 PermitRootLogin yes
 Port 22

(3)重启ssh服务

 systemctl restart sshd

重要:这里创建的信任关系是当前用户的,如果需要root用户的信任关系,可以直接复制
~/.ssh 文件夹到 /root目录下

sudo cp -rf ~/.ssh /root  //把当前用户下的.ssh文件夹拷贝到root用户根目录下

测试:
配置完成后在本地通过如下命令登录远端系统,如无需输入密码即可登录则配置完成

ssh user_name@ip_address
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值