windows用powershell连接vps
文章目录
Powershell已经内置OpenSSH,用起来比Xshell还方便,并且用root账号或开启密码登陆都存在安全隐患,所以这里只介绍普通用户+ssh的登陆方式。
基本步骤:
1.本机生成key(如果已经有key,可以跳过)
打开powershell
,输入:
ssh-keygen
一路enter,生成的秘钥默认位置在~\.ssh\
下,即C:\Users\xxx\.ssh
,xxx为你的windows用户名。
2.服务器端设置
服务器端的基本步骤是:用root账号登录服务器->创建一个普通用户->给用户授权sudo
权限->复制公钥到服务器。
2.1 用root账号登录服务器
这里root账号的密码通常在VPS供应商的管理网站上可以设置和修改,登录的话通常有两种方式,一种是直接在网页上的控制面板登录,可能都不需要输入root密码,另一种是在powershell
中输入ssh root@xxx.xxx.xxx.xxx
,@
后面是公网IP地址,会提示输入root密码。
2.2 创建一个普通用户
adduser xxx
提示的个人信息可以一路回车跳过,建错id的话可以deluser xxx --remove-home
2.3 给用户授权sudo
权限
可以有多种实现方式,比较简单的是:usermod -aG sudo xxx
也可以直接修改/etc/sudoer
(不推荐)或者以配置的方式在/etc/sudoer.d/
目录下添加文件,可能在不同的发行版下表示不一致。
用户有sudo权限后就可以切换到xxx
用户进行操作了,毕竟root权限太大,平时应该用普通用户操作
su xxx
2.4复制公钥到服务器
打开本地
~\.ssh\
目录下的.pub公钥文件,复制内容。进入用户目录下的
.ssh
文件夹:cd ~/.ssh/
编辑
authorized_keys
文件,vi authorized_keys
添加刚才复制的公钥,文件中可以用#开头添加注释,注意不要把公钥给注释了。保存退出。
注意:如果没有
.ssh
文件夹,或者是通过root账号新增的用户,需要手动新增一个文件夹,并设置文件夹权限为700
(chmod 700 .ssh
),新增authorized_keys
文件并设置权限为600或700(chmod 600 authorized_keys
)(如果不新增key,连接时只要对该文件有读权限就可以,也就是400),权限不对的话后面连接会被服务器拒绝,每次都要输入密码。这里权限设置可以理解为只有用户自己才能操作这个文件夹,即使同组内用户也不能访问,更别说其它一般用户了,否则就有安全问题。
2.5重启sshd服务
sudo service sshd restart
2.6建立连接
完成后就可以在powershell输入
ssh xxx@myServerIP
直接连接主机了,这里的xxx
就是创建的用户名。
注意:如果服务器的IP以前已经连接过,记得到本机~\.ssh\known_hosts
(跟pub-key同目录)文件中删除该IP对应的那一行,不然的话会因为跟之前的记录冲突而导致无法建立连接。
3.其它
可以在powershell的脚本中建立一个函数代替ssh xxx@myServerIP
简化连接,大致步骤如下:
先在powershell输入$profile
,显示的就是配置文件的路径
进入相应目录打开这个配置文件,输入function loginxxx{ssh xxx@xxx.xxx.xxx.xxx}
完成以后,重新打开powershell
,输入loginxxx
就能连接服务器了,这里的xxx就是前面的用户名,服务器IP地址等。
没有配置文件的话需要添加,而自定义的配置文件生效的话可能会触发相关的安全机制,需要进一步的设置,具体可以在碰到的时候google解决
版权声明 本博客使用CC BY-NC-SA 4.0许可协议(创意共享4.0:保留署名-非商业性使用-相同方式共享)。