Windows服务器通过SSH免密登录Linux服务器(Ubuntu版本)
大多数登录Linux服务器需要通过用户名及密码方式,但是有些特殊情况没办法知道Linux服务器的登录密码,还需要通过Windows服务器使用ssh登录Linux服务器,介绍一种通过公钥的方式使用Windows的PowerShell免密ssh登录Ubuntu服务器。
Windows生成ssh公钥
在Windows机器上以管理员方式运行Powershell
,然后输入ssh-keygen
一直回车到结束,会在你的C盘用户目录下生成.ssh
文件夹,其中有两个文件,一个是私钥id_rsa
,一个是公钥id_rsa.pub
。
到这里我们只使用id_rsa.pub
公钥文件,下面会介绍在哪使用。
Linux生成ssh公钥
sshd
是一个守护进程,用于提供SSH(Secure Shell) 服务。 SSH是一种加密的网络协议,用于远程登录到另一台计算机或执行远程命令。sshd
的作用主要是提供安全的远程访问和管理功能。
要查看Linux系统是否已安装sshd,可以使用以下命令:
# 查看是否安装`sshd`
ps -e | grep ssh
# 如果没有安装,则安装sshd
sudo apt-get update
sudo apt-get install openssh-server
然后执行ssh-keygen
命令,也是一路回车,然后成功Linux的存放私钥id_rsa
,公钥id_rsa.pub
的文件夹~/.ssh
。
Linux配置windows的公钥
将第一步Windows中生成的id_rsa.pub
公钥内容复制添加到Linux。
# 进入`~/.ssh`目录
cd ~/.ssh/
# 创建`authorized_keys`文件
touch authorized_keys
# 编辑刚才创建的`authorized_keys`文件,将第一步windows中生成的`id_rsa.pub`内容进行复制到此文件中,然后保存退出
vim authorized_keys
# 赋权:
sudo chomd 700 ~/.ssh
sudo chomd 700 ~/.ssh/authorized_keys
# 重启sshd服务
sudo systemctl restart sshd
Windows登录访问验证
在Windows服务器的Powershell
使用ssh
命令登录Linux服务器, ssh hhwuser@10.123.456.178
。
直接登录成功而不需要验证码则代表配置成功。