SSH学习笔记

1、允许root账户ssh登录(不推荐)

# 以管理员身份登录到系统中,使得后续的操作能够获得更高的权限。
sudo -i
# 更改当前用户的密码
passwd
# 编辑SSH 服务的配置文件
vi /etc/ssh/sshd_config
# 允许 root 用户通过 SSH 登录系统
PermitRootLogin yes
# 许通过密码方式进行身份验证
PasswordAuthtication yes
# 重启 SSH 服务,使得上述修改生效
systemctl restart ssh

2、公私钥免密登录远程服务器

ssh登录不去写用户名,默认就是以当前用户。

ssh免密登录的流程

ssh免密登录服务器的流程:

  • 本地生成公私钥

  • 将本地生成的公钥添加到需要免密登录的服务器的authorized_keys文件夹中。

注:windows机器最好使用git bash操作。

# 使用 ssh-copy-id 命令将 SSH 公钥复制到远程服务器
ssh-copy-id -i C://Users//gujia//.ssh//id_ed25519.pub -p 22 [email protected]

注:进行更换端口操作时,一定要注意ufw是否已经放行相关端口,避免被自己到时候进不去的尴尬境地。

以下方法复制服务器上的私钥到本地的做法不推荐。

# 使用 ed25519 算法生成一个 SSH 密钥对,其中 -C 选项用于添加一个注释,方便您识别该密钥对。
ssh-keygen -t ed25519 -C "bandwagon gt server key"
# 创建 ~/.ssh/ 目录并将其权限设置为 700,以确保只有文件所有者可以读取和修改该目录。然后,创建一个空的 authorized_keys 文件,并将其权限设置为 600,以确保只有文件所有者可以读取和修改该文件。
mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
# 刚刚生成的公钥文件 id_ed25519.pub 的内容追加到 authorized_keys 文件中,从而允许使用该密钥进行 SSH 登录。
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
# 使用SFTP将生成的私钥下载到本地电脑上,私钥文件名可以重命名。
# 如我将banwagon dc3机房的cn2 gtvps的私钥下载到本地windows电脑的~/.ssh文件夹里面,
# 并重命名为bandwagon_gt,接着在config文件中添加IdentityFile字段,指定了私钥路径。
# 接着便可以不输入密码ssh连接远程那台vps了。
# 注:若修改了ssh端口号,则需要修改~/.ssh/config中的Port字段。
Host bandwagon
    HostName 104.243.18.115
    Port 23456
    User root
    IdentityFile ~/.ssh/bandwagon_gt
# 编辑SSH 服务的配置文件
vi /etc/ssh/sshd_config

#PubkeyAuthentication yes
# 启用公钥身份验证
PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
# 指定用于公钥身份验证的授权密钥文件的位置
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
# 禁用基于密码的身份验证
PasswordAuthentication no
# 重启 SSH 服务,使得上述修改生效
systemctl restart sshd
# 编辑SSH 服务的配置文件
vi /etc/ssh/sshd_config
# 修改SSH服务的端口号为2222
Port 2222
# 重启 SSH 服务,使得上述修改生效
systemctl restart sshd

3、相关资料

4、ssh不频繁断连的方法

# 修改 SSH 服务器端的配置文件
vim /etc/ssh/sshd_config
# ClientAliveInterval 30: 表示服务器每隔 30 秒向客户端发送一次心跳
ClientAliveInterval 30
# 允许连续 2 次心跳失败。如果超过这个次数,服务器将关闭连接。
ClientAliveCountMax 2
# 重启名为 sshd 的服务
systemctl restart sshd

客户端可以去相应软件中设置Keepalive Interval数值。

客户端Keepalive Interval

5、验证ssh能成功连接github的命令

ssh -T [email protected]

6、SSH连接到一个新主机时,显示RSA指纹