最近新配了个主机,有了多个设备,ssh连接的功能可以优化很多体验,便又开始鼓捣。以前都是windows连各种linux,比较方便;这次是在windows之间,还是小查了好一会儿,留个记录
SSH连接的基本模型便是: 客户端机器 ----connect----> 服务端机器。
SSH客户端准备
Windows操作系统(以win10为例)
操作系统会自带OpenSSH Client(通过 开始->设置->应用->可选功能 查看)
所需操作仅为生成自己的ssh公钥和私钥,为ssh连接的验证做准备
- 打开命令行(win+R cmd进入的就是home目录,一般为
C:\Users\用户名
这样最方便) - 输入命令
ssh-keygen -t rsa -C "[email protected]"
,没有特殊要求的话一路回车即可。email部分随意仅用于生成rsa,一般就自己选个邮箱填好了 - 此后,在
C:\Users\用户名\.ssh\
中会出现id_rsa和id_rsa.pub,分别为私钥钥和公钥。以后将公钥放到目标服务器机器的对应位置处可作为免密连接的前提
Linux操作系统()
暂时null,等尝试了装manjora后再说;linux上应该方便很多、、
SSH服务器准备
Windows操作系统(以win10为例)
一般需要安装OpenSSH Server,进入 开始->设置->应用->可选功能 可安装。
操纵ssh服务器的常用命令:
Get-Service sshd # 查看服务器状态(是否开启)
Start-Service sshd # 打开服务器
Stop-Service sshd # 关闭服务器
Restart-Service sshd # 重启服务器
应该会需要管理员权限,win+X呼出选项然后选择Windows PowerShell(管理员)应该最方便;用管理员权限打开cmd也好(其实一般单用户的电脑开启cmd时就是管理员的权限吧,不清楚;没有sudo真难受)
关于网传
runas /user:administrator cmd
的说法,我始终不知道administrator的密码是什么,但其实自己的用户也是管理员权限,换成自己的用户名应该也一样;但是感觉就是多此一举了
至此,其实就可以进行ssh连接的操作了:作为服务器的机子打开ssh服务器,作为客户端的机子通过ssh username@ip-address
命令申请连接(一般端口就默认22, 也就是-p 22
),然后输入服务器机子的密码就好。命令whoami
可知username,命令ipconfig
可知ip-address
曾经对这个密码是什么纠结了好久,结果还是自己的锅,见 https://www.zhihu.com/question/551485628/answer/2657902297
然而为了连接方便,会在配置一下达到免密的效果:
- 在服务器
C:\Users\用户名\.ssh\
中新建authorized_keys
文件,将客户端的公钥(id_rsa.pub)的内容放到服务器该文件中; - 修改服务器
C:\ProgramData\ssh\
中的ssdh_config
文件
# 确保此3行正确且未被注释
PubkeyAuthentication yes # 这个一般初始状态为被注释,34行左右
AuthorizedKeysFile .ssh/authorized_keys # 这个一般未被注释,38行左右
PasswordAuthentication no # 这个一般初始状态为被注释,且配置为yes,51行左右
# 注释此2行,一般在文件尾
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
- 重启ssh服务器,
Restart-Service sshd
,此后添加过公钥的客户端在登录服务器时将无需输入密码
Linux操作系统
似乎也是在~/.ssh/
中添加authorized_keys之类的同质操作,然后就ok了;毕竟ssh原生于Linux,比较方便,而且ssh服务器应该是开机自启的。具体记不太清了
Visual Studio Code 优化体验
在客户端使用vscode插件,会方便很多。下载插件"Remote - SSH",左下角出现绿色相向箭头图标则完成。
点击该图标,依次选择Connect to Host -> Configure SSH Hosts -> C:\Users\用户名.ssh\config,然后按照样例填写目标服务器Host相关信息
Host alias # alias:自己起个别名便于区分
HostName hostname # hostname:即服务器的ip-address
User user # user:即服务器的username
# Port xxxx 若需配置端口则如是
进入Connect to Host 然后选择对应别名的服务器,即可开始连接;初次连接需要在服务器装相应的插件,选对应操作系统即可;若没有进行免密登录的配置,则几乎每部操作都要输密码,挺要命的。
标签:sshd,Service,ssh,服务器,搭建,连接,客户端 From: https://www.cnblogs.com/elucidator-xrb/p/16652669.html