一、修改 SSH 服务的端口
查看 sshd 服务运行状态:
systemctl status sshd
或service sshd status
;查看 sshd 服务默认监听的端口:
netstat -anlp | grep sshd
;修改 sshd 监听端口:打开 sshd 的配置文件
vi /etc/ssh/sshd_config
,将配置文件的端口 22 修改成 10022。
原文件:
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
修改后:
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 10022
注意:
针对 CentOS 系统,因为内部集成了 SELinux 系统,所以还需进行如下配置:
semanage port -a -t ssh_port_t -p tcp 10022
如果本机未安装 semanage 指令,则可以先反查哪个安装包提供了 semanage 指令:
yum whatprovides semanage
然后根据提示的安装包名安装指定安装包(复制安装包名称时无需复制版本号):
yum install -y policycoretutils-python
查看端口是否配置成功:
semanage port -l | grep ssh
;重启 sshd 的服务:
service sshd restart
;在本机上测试刚才设置的端口号是否生效:
ssh -p 10022 root
;
二、配置无密码登录
- 在本地机器上生成公私钥。
cd ~/.ssh ssh-keygen
- 在本地机器的 ~/.ssh 目录下创建名为 config 的配置文件,将如下配置复制到 config 文件中。
Host tx
Port 10092
HostName 49.235.124.65
User root
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
其中:**
- IdentityFile: 表示私钥位置;
- IdentitiesOnly: 指示 ssh 仅使用在命令行上指定的身份验证身份文件或在 ssh_config 文件中配置的身份验证身份文件;
- 配置远程服务器 ECS。进入远程服务器 ECS 的
~/.ssh
目录下,创建文件 authorized_keys。cd ~/.ssh touch authorized_keys
将之前本地机器上生成的公钥复制到文件 authorized_keys 中。
- 连接远程服务器:
ssh tx
;
注:
若报“ Connection refused”错误,可能有以下几个原因:
- 看下远程服务器22端口是否有开启,以及相应安全组是否有配置;
- 查看本地局域网与远程服务器内网IP是否在同一个网段内,要确保二者不在同一网段。