SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地运行网络服务。它主要用于远程登录服务器,进行命令行操作。SSH通过加密技术确保数据传输的安全性,防止数据被窃听或篡改。
大多数Linux发行版默认已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install openssh-server # Debian/Ubuntu
sudo yum install openssh-server # CentOS/RHEL
编辑SSH配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
主要的配置项包括:
Port
:指定SSH服务的端口号,默认是22。PermitRootLogin
:是否允许root用户通过SSH登录。PasswordAuthentication
:是否允许密码认证。PubkeyAuthentication
:是否允许公钥认证。示例配置:
Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
保存配置文件后,重启SSH服务以应用更改:
sudo systemctl restart sshd # CentOS/RHEL
sudo systemctl restart ssh # Debian/Ubuntu
在客户端生成SSH密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这将生成一个公钥(id_rsa.pub
)和一个私钥(id_rsa
)。
将生成的公钥复制到服务器上的 ~/.ssh/authorized_keys
文件中:
ssh-copy-id user@server_ip
或者手动复制:
cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
尝试使用SSH密钥对登录服务器:
ssh user@server_ip
如果一切配置正确,你应该能够无需输入密码即可登录。
~/.ssh
目录和 authorized_keys
文件的权限正确:~/.ssh
目录和 authorized_keys
文件的权限正确:通过以上步骤和解决方案,你应该能够成功配置Linux系统的SSH登录。如果遇到其他问题,建议查看SSH服务的日志文件(通常位于 /var/log/auth.log
或 /var/log/secure
)以获取更多详细信息。
领取专属 10元无门槛券
手把手带您无忧上云