SSH密钥登录服务器
注意
win10系统cmd打开的终端和powershell部分命令不支持。推荐git bash
基本步骤
一、本地生成密钥
shell
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
二、添加本地生成的公钥id_rsa.pub到服务器
shell
# 将.pub公钥粘贴进去退出保存(:wq)
vim ~/.sshauthorized_keys
三、配置服务器快捷登录
原来我们连接服务器操作是:
ssh root@xxx.xxx.xxx.xxx
快捷登录操作:
ssh xxx
[xxx是自定义vps名称]
shell
# vim ~/.ssh/config
# 举例
Host tencent
HostName 111.111.111.111
User root
Port 22
IdentityFile ~/.ssh/id_rsa
ProxyCommand connect -S 127.0.0.1:10808 -a none %h %p
字段说明
shell
HostName # 服务器IP地址
User # 登录用户名
Port # 端口号
IdentityFile # 指定私钥文件(默认~/.ssh/id_rsa)
ProxyCommand connect # -S 表示使用 socks5 代理 || -a none 表示本地代理无需认证 || %h %p 变量分别对应远程主机名和端口
登录服务器:ssh tencent
开启root登录与关闭防火墙
开启root登录
shell
# 切换到root用户
vim /etc/ssh/sshd_config
# 找到PermitRootLogin字段yes
PermitRootLogin yes
# 重启sshd服务 或者 systemctl restart ssh
systemctl restart sshd
# 设置root密码就可以使用 ssh root@ip 登录
passwd root
关闭密码登录
shell
# 切换到root用户
vim /etc/ssh/sshd_config
# 修改以下配置项
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
PubkeyAuthentication yes
# Port 22 默认ssh端口
# 重启sshd服务 或者 systemctl restart ssh
systemctl restart sshd
主流系统防火墙开关
Ubuntu、Debian、centos。只关乎服务器防火墙设置,安全组需要在各个厂商的面板中设置
shell
# Ubuntu 和 Debian 通常使用 ufw(Uncomplicated Firewall)作为防火墙管理工具
ufw status
ufw disable
ufw enable # 启用防火墙
# CentOS 通常使用 firewalld 作为防火墙管理工具
systemctl status firewalld
# 停止服务
systemctl stop firewalld
# 禁用开机启动
systemctl disable firewalld
systemctl start firewalld # 启动防火墙
systemctl enable firewalld # 开机启动防火墙