本文主要分为两部分,第一部分介绍如何在win下面安装使用OpenSSH,第二部分介绍如何 配置SSH自动连接服务器 (省略输入密码,服务器ip地址的步骤)
###一, Windows下OpenSSH的安装使用
Linux终端中使用SSH只需要使用如下命令,
ssh username@hostip
十分的简单方便,但是我们如果想要在Windows下使用SSH就得使用Xshell,putty等各种乱七八糟的工具软件,十分麻烦,所以下面介绍如何配置Windows自带的PowerShell让它也能够和linux一样简单方便的使用SSH,
首先这里我们需要借用一款工具 Chocolatey (https://chocolatey.org/),这东西就像Ubuntu里面的apt-get一样,可以直接使用
choco packagename
安装自己想要使用的软件包,十分方便好用,下面介绍具体如何安装Chocolatey 以及OpenSSH
1.安装Chocolatey
以管理员权限打开PowerShell运行以下命令,一行行的运行
Set-ExecutionPolicy AllSigned
在弹出的界面输入 y 然后回车
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
ok,Chocolatey就安装好了
2.关闭刚才的PowerShell,新以管理员权限打开一个PowerShell(注意最好重新打开,不然Chocolatey可能用不了,环境变量的原因)
然后运行如下命令安装OpenSSH(后面使用choco安装软件的时候最好都是以管理员权限安装)
choco install openssh
然后你就可以像在Linux下使用SSH一样简单方便的使用SSH了
###二, 配置SSH自动连接服务器 (省略输入密码,服务器ip地址的步骤)
1.使用 ssh-keygen 工具生成配对的公钥私钥,
ssh-keygen -t rsa
生成过程中会提示设置存放公钥私钥的位置,可以选择使用默认位置,我的就放在C:\Users\Tuzixini.ssh(tuzixini是我自己的用户名)(在linux下这个路径应该是~/.ssh),然后可以看到对应的目录下生成了 id_rsa 和 id_rsa.pub 两个文件,其中id_rsa就是我们自己的私钥文件,是放在自己这里不能拿出去的,id_rsa.pub就是公钥文件,分享这个文件即可实现免密码认证功能.
2.在服务器端开启自动认证功能,这一步的操作是在服务器端操作的
编辑修改 /etc/ssh/sshd_config 文件
sudo vim /etc/ssh/sshd_config
去掉下面几行代码前面的 # 注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
3.上传公钥文件到服务器并将公钥内容导入认证文件(直接把内容复制进去也行)
这里我使用SCP上传公钥到我的服务器端~/.ssh目录下(tuzixini,192.168.0.222是我自己的用户名,ip地址,替换成你自己的服务器用户名和ip),或者你可以使用任何其他的ftp工具啥的把公钥上传到服务器
scp C:\Users\Tuzixini\.ssh\id_rsa.pub tuzixini@192.168.0.222:~/.ssh/authorized_keys
新建认证文件,
# 如果根目录下没有 .ssh文件夹,先使用下一行命令新建文件夹,如有有就跳过
mkdir ~/.ssh
# 新建认证文件
touch ~/.ssh/authorized_keys
导入公钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
**注:**这个公钥文件其实就是一串文本,你直接在远程界面使用vim把id_rsa.pub里面的文本复制保存在服务器的~/.ssh/authorized_keys文件中就行.
4.配置本地ssh文件,为远程服务器设置别名以及自动认证
编辑自己用户目录下的.ssh/config文件,我这里的目录是C:\Users\Tuzixini.ssh\config , linux 下对应的目录应该是 ~/.ssh/config
使用任何你喜欢的文本编辑器打开编辑config文件,添加以下文本,按照自己实际情况参考我的注释修改,并注意删除所有#以及#后面的注释(中文会对软件运行造成影响)
Host tuzixini #给你想连接的远程服务器起个别名,自己记住就好,方便自己后面使用,像我这里后面直接使用 ssh tuzixini 就可以了
User tuzixini #远程服务器中你的用户名
Hostname 10.168.66.1 #远程服务器ip
IdentityFile C:\Users\Tuzixini\.ssh\id_rsa #本地私钥地址,按照自己实际的路径修改
修改好之后保存即可
5.至此大功告成,想要使用远程服务器直接打开powershell然后输入
ssh tuzixini
这里将tuzixini替换成你上面在config里面为你的服务器设置的别名即可.