SSH - nonelittlesong/study-ubuntu GitHub Wiki


参考:

打开远程图形界面

$ ssh -q -X

安装openssh-server

$ sudo apt-get install openssh-server

检查ssh服务开启状态

$ ps -e | grep ssh

开启ssh服务

$ service ssh start # /etc/init.d/ssh start

修改 ssh_config 文件

$ vim /etc/ssh/ssh_config

关闭服务

$ service ssh stop

一、 Gitlab & Github

# gitlab
ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
ssh-keygen -p -o -f <keyname>           # 修改 passphrase
xclip -sel clip < ~/.ssh/id_rsa.pub     # 复制公钥
# github
ssh-keygen -t rsa -b 4096 -C "[email protected]"
eval "$(ssh-agent -s)"                  # ssh-agent
ssh-add ~/.ssh/id_rsa

# 测试
ssh -Tv [email protected]

二、 ssh-add

语法:

ssh-add [-cDdLlXx] [-t life] [file ...]
ssh-add -s pkcs11 
ssh-add -e pkcs11

options:

  • -D - 删除 ssh-agent 中的所有密钥
  • -d - 删除密钥
  • -e : pkcs11 - 删除 PKCS#11 共享库 pkcs1 提供的钥匙
  • s : pkcs11 - 添加 PKCS#11 共享库 pkcs1 提供的钥匙
  • -L - 显示 ssh-agent 中的公钥
  • -l - 显示 ssh-agent 中的密钥
  • t : life - 对加载的密钥设置超时时间,超时 ssh-agent 将自动卸载密钥
  • -X - 对 ssh-agent 进行解锁
  • -x - 对 ssh-agent 进行加锁

三、 ssh

options:

  • -T - 禁止虚拟终端。
  • -v - 打印信息。

四、 ssh-keygen

options:

  • -m - 指定密钥格式。 PEM 指 RSA旧格式。
  • -t - 密钥类型。
  • -i - 将其他格式转成 OPENSSH,输出到 stdout。和 -m 连用指定格式。
  • -e - 将 OPENSSH 转成其他格式,输出到 stdout。和 -m 连用指定格式。
  • -b - 密钥长度。一般4096。
  • -f - 和 -t 连用,指定保存密钥的文件名。和 -e/-i 连用,指定输入文件名。
  • -o - 使用 OPENSSH 格式。
ssh-keygen -f "/home/song/.ssh/known_hosts" -R 45.76.106.101

Troubleshooting

现象:
主机间互通正常且可以判断对方 ssh 端口是开放的,但是用 ssh user@host -v 这种方式连接的时候会卡在 debug1: SSH2_MSG_KEXINIT sent 这步。

解决方法:

$ su
echo 1454 > /sys/class/net/wlp3s0/mtu

原因:
IPV4 报头与 GRE 报头结构不同,导致 GRE 数据包最大内容载荷只有1454,默认 mtu 如果是1500的话,就会有46字节的内容无法处理导致错误。

⚠️ **GitHub.com Fallback** ⚠️