ssh 相关学习

ssh 相关学习

免密登陆

本地操作

1
2
3
ssh-keygen -t rsa -C "xxx@xxxxx.com"  
# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key
1
2
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

.ssh 文件夹中,可能有三个文件

  • id_rsa : 生成的私钥文件
  • id_rsa.pub : 生成的公钥文件
  • know_hosts : 已知的主机公钥清单

vps 操作

如果希望ssh公钥生效需满足至少下面两个条件:

  • .ssh 目录的权限必须是700
  • .ssh/authorized_keys 文件权限必须是600

在 VPS 的默认目录(/root)下面新建文件夹 .ssh

1
mkdir ~/.ssh

进入 .ssh 目录,执行 vi 命令新建 authorized_keys 文件

1
2
cd ~/.ssh 
vi authorized_keys

修改 nano /etc/ssh/sshd_config

PasswordAuthentication no

id_rsa.pub 文件中的内容粘贴到 authorized_keys 文件中,保存退出,之后就可以实现免密登陆。

更换端口

先打开防火墙的相应端口,再修改 sshd 服务配置文件

1
vi /etc/ssh/sshd_config

找到 #Port 22,去掉前面的 #,并修改为相应端口,然后重启 sshd 。

1
2
service sshd restart
systemctl restart sshd
1
2
# 查看服务状态
systemctl status sshd

遇到无法启动服务时,查看selinux是否关闭。

1
2
3
4
5
6
7
8
# 查看SELinux状态
$ /usr/sbin/sestatus -v 或者 $ getenforce
# 临时修改,不需重启
$ setenforce 0 # 设置SELinux为permissive模式
$ setenforce 1 # 设置SELinux为enforcing模式 临时修改
# 修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
$ reboot

清除登录信息

1
2
3
last             //对应的日志文件/var/log/wtmp; 成功登录用户
lastb //对应的日志文件/var/log/btmp; 尝试登录信息
lastlog //对应的日志文件/var/log/lastlog; 显示最近登录信息

清空日志文件:

1
2
3
echo > /var/log/wtmp
echo > /var/log/btmp
echo > /var/log/lastlog