Ubuntu-ssh远程连接配置

Ubuntu配置SSH连接
包括密码连接和私钥连接
本机和远程主机上分别的配置

Ubuntu配置SSH连接

安装SSH

在Ubuntu上,SSH通常已经预装。如果没有安装,可以使用以下命令:

1
sudo apt update && sudo apt install ssh

或者

1
sudo apt update && sudo apt install openssh-server
前者是安装SSH客户端,后者是安装SSH客户端和服务端。如果只是需要连接远程主机,只需要在主机上安装SSH服务端即可。

密码连接

启动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
2
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

使用私钥连接

确保本机私钥的权限设置为安全:

1
chmod 600 ~/.ssh/id_rsa
使用私钥连接到远程主机:

1
ssh -i ~/.ssh/id_rsa username@remote_ip

-i参数指定私钥文件路径。这样就可以免密码连接到远程主机了。