![ssh_config:以服务器主机名命名的密钥](https://linux22.com/image/1599572/ssh_config%EF%BC%9A%E4%BB%A5%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%BB%E6%9C%BA%E5%90%8D%E5%91%BD%E5%90%8D%E7%9A%84%E5%AF%86%E9%92%A5.png)
我当前的.ssh/config
文件仅包含以下内容:
Host *
HostName %h
IdentityFile ~/.ssh/%h
这使得我可以使用与远程机器的主机名同名的密钥连接到每台机器。
但是,当我连接到尚未拥有密钥或无法设置密钥的服务器时,SSH 客户端会显示“没有此身份”警告。
有没有办法使用配置文件中的条目或其他内容来抑制此警告?
答案1
您可以使用akaMatch exec
运行与在 shell 中相同的命令:test
[
Match exec "[ -e ~/.ssh/%h ]"
IdentityFile ~/.ssh/%h
(这与 以相同的方式开始新的部分Host
,并且具有相同的优先级。)
Hostname %h
是多余的;这已经是默认值了。