配置

ControlMaster

对于 OpenSSH 4.0 以及之后的版本,引入一新功能 ControlMaster,可以复用之前已经登录的连接,建议开启:

Host *
  ControlMaster auto
  ControlPath ~/.ssh/master-%r@%h:%p
  ControlPersist 60m

参考:

临时禁用公钥登录:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com

MacOS

在 macOS/OS X 截止到 Yosemite,ssh-agent 会一直记住 ssh-add -K 添加的 key,即使重启 keychain,ssh-agent 也会自动去读取保存在 keychain 中的密码(passphrase)。但在 Sierra 中,重启 keychain 后,ssh-agent 就不会去读取了。Apple 开发者也对这一现象作出回应

That’s expected. We re-aligned our behavior with the mainstream OpenSSH in this area.

解决办法也很简单,将ssh-add -A 放到 ~/.bashrc 里面就可以了。除了这种方式,还可以在~/.ssh/config里面加入如下配置:

Host * (asterisk for all hosts or add specific host)
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile <key> (e.g. ~/.ssh/userKey)

参考:

Ubuntu

sudo apt-get install keychain

# ~/.bashrc
/usr/bin/keychain $HOME/.ssh/id_ecdsa
source $HOME/.keychain/$HOSTNAME-sh
  • https://www.cyberciti.biz/faq/ubuntu-debian-linux-server-install-keychain-apt-get-command/

pssh

pssh -h hs -A -i -l root "docker ps"
# 对于执行时间较长对命令,可以用 -t 指定超时秒数,默认 60s