Ubuntu-ssh远程连接配置
Ubuntu配置SSH连接
包括密码连接和私钥连接
本机和远程主机上分别的配置
Ubuntu配置SSH连接
安装SSH
在Ubuntu上,SSH通常已经预装。如果没有安装,可以使用以下命令:
1 | sudo apt update && sudo apt install ssh |
或者 前者是安装SSH客户端,后者是安装SSH客户端和服务端。如果只是需要连接远程主机,只需要在主机上安装SSH服务端即可。1
sudo apt update && sudo apt install openssh-server
密码连接
启动SSH服务
确保远程主机SSH服务已经启动:
1 | sudo service ssh start |
允许密码登录
在远程主机上,编辑SSH配置文件:
1 | sudo nano /etc/ssh/sshd_config |
找到以下行:
1 | PasswordAuthentication no |
将no
改为yes
:
1 | PasswordAuthentication yes |
保存并退出文件。重启SSH服务:
1 | sudo service ssh restart |
连接
本机使用用户名和密码连接到远程主机:
1 | ssh username@remote_ip |
username
为远程主机的用户名,remote_ip
为远程主机的IP地址,例如:[email protected]
,下同。
接着回车输入密码即可。
密码连接是最简单的方式,满足基本的远程连接需求。但在频繁连接时,密码连接会显得繁琐,而且不够安全。例如使用vscode进行远程开发时,打开不同的文件夹,每次都需要输入密码确认。这时候就推荐使用私钥连接。
私钥连接
生成SSH密钥对
在本机生成SSH密钥对:
1 | ssh-keygen -t rsa -b 2048 |
按下三次回车键,或者按照提示输入密钥保存路径和可选密码
将公钥传输到远程主机
使用SCP或其他方式将公钥传输到远程主机:
1 | scp ~/.ssh/id_rsa.pub username@remote_ip:~/.ssh/ |
配置远程主机
登录远程主机,将公钥添加到授权文件,授予600权限:
1 | cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
使用私钥连接
确保本机私钥的权限设置为安全: 使用私钥连接到远程主机:1
chmod 600 ~/.ssh/id_rsa
1 | ssh -i ~/.ssh/id_rsa username@remote_ip |
-i
参数指定私钥文件路径。这样就可以免密码连接到远程主机了。