注:以下所有操作的前提:Windows端和Linux端均存在ssh服务(基本默认都有)
我们平时在虚拟机中输入指令很多时候不能复制粘贴,经常需要一直切换画面查看命令,带来了很大的不便。
市面上存在很多SSH客户端可以便捷地连接到虚拟机,但是其实Windows自带的powershell也可以直接实现SSH连接。
因此笔者写下这篇文章来让大家了解如何使用powershell连接虚拟机并实现免密登录。
1. 配置PowerShell
打开powershell,点击tab页右上角下拉框打开设置界面(快捷键Ctrl + , )
下拉点击添加新配置文件,点击新建空配置文件
选择命令行设置,将命令改为
%SystemRoot%\System32\OpenSSH\ssh.exe user@ip
其中user即为虚拟机登录用户名,ip为虚拟机地址,按实际填写(例如 root@192.168.66.121)
建议在这一步同时配置好名称(方便记忆的话,建议直接叫Ubuntu或者CentOS),点击保存
点击tab页右上角下拉框,选中你刚刚配置的名称,这里我选择配置好的CentOS
启动后应该是会先出于安全考虑询问一段话,直接yes即可。
然后就会要求你填写密码(因为用户名和ip我们都已经配置好了),填写正确密码后显示登录成功信息即代表powershell配置完毕。
2. 配置免密登录
如果你觉得每次登录都需要输入密码非常复杂,我们也可以配置免密登录。
2.1. 生成Windows端的密钥
在powershell中输入如下命令,一路回车即可
密钥生成位置默认在 C:\Users\xxx\.ssh中(xxx根据自己电脑用户名的实际情况填写,一路回车就是默认位置)
ssh-keygen -t rsa
2. 2 虚拟机文件配置
我们要把密钥放到虚拟机特定的位置:~/.ssh/authorized_keys
我在CentOS上没找到这个文件夹,故需要自己创建(看个人情况,有的话自然不用创建)
//创建.ssh文件夹(文件夹实际位置为/root/.ssh)
mkdir ~/.ssh
//改变目录权限
chmod 700 ~/.ssh
//创建authorized_keys文件
touch ~/.ssh/authorized_keys
//改变目录权限
chmod 600 ~/.ssh/authorized_keys
2.3 发送密钥
输入如下命令,其中Windows用户路径等信息还是根据实际填写
scp C:\Users\xxx/.ssh/id_rsa.pub user@ip:~/.ssh/authorized_keys
再次启动第一步的配置文件,你会发现我们无需密码直接连接上了虚拟机。
至此,大功告成,我们实现了使用powershell免密SSH连接虚拟机。