配置SSH远程登录服务器
这里的服务器是在本地虚拟机安装的 ubuntu 23,使用 MacOS 著名的虚拟机软件 PD。但是其他软件比如 VMware 也是一样的。
安装桌面环境没成功,所以直接用终端界面了,利用 SSH 连接到本地终端或者 VSCODE 来使用。
这里的环境没有默认禁止密码登录,禁止的话会更麻烦一些。
首次配置流程
查看服务器 IP 地址
ip a
在 Mac 上尝试登录服务器
ssh ustc@xxx
失败,在服务器上查看 ssh 信息,发现没开启……
# 如果没有安装,还需要下载 openssh-server
sudo systemctl status ssh
sudo systemctl start ssh
sudo systemctl enable ssh
开启后重新尝试 ssh 登录,询问时使用 yes,正常登录进入服务器系统。检查后退出
$ exit # 退出服务器
在 Mac 本地生成密钥文件
ssh-keygen
默认条件下会生成一个id_rsa 和 id_rsa.pub文件,分别为私钥和公钥。公钥是分享给服务器的。
一份公钥可以多次使用,但如果是生产用的服务器,最好一钥一用,降低风险
将公钥拷贝到服务器上。如果服务器不允许使用密码操作,需要将用户目录下 .ssh/id_rsa.pub 文件的内容复制到机器对应用户的 .ssh/authorized_keys 文件中
$ ssh-copy-id ustc@xxx
$ ssh ustc...
$ cat .ssh/authorized_keys # check
为了安全性,关闭 SSH 密码登录:
编辑 /etc/ssh/sshd_config 文件,将其中PasswordAuthentication yes修改为
PasswordAuthentication no
然后让 SSH 服务器重新加载配置:
sudo systemctl reload ssh
在这之后,登录就不再需要密码了。
让 SSH 更好用的配置
每次登录都输入ssh username@ip也太累了,在~/.ssh/config下新建下列行
Host myserver # 自己取的服务器别名
HostName 123.456.78.90
User your_username # 服务器用户名,我用的普通用户
就可以通过
$ ssh myserver
直接登录服务器