Это можно обойти, хотя этот метод довольно хакерский и не позволяет пользователю использовать клавишу Windows в качестве модификатора
Испытано просветлением 22
По крайней мере, в моей системе Debian 10 справочная страница ssh_config(5)
говорит:
Arguments to IdentityFile may use the tilde syntax to refer to user's home directory or the tokens described in the TOKENS section.
Итак, вместо использования $HOME
вы можете записать строку IdentityFile
как:
IdentityFile "~/.ssh/id_rsa"
или как:
IdentityFile "%d/.ssh/id_rsa"
Поддержка синтаксиса переменных среды(${HOME}
)упоминается только в элементе конфигурации IdentityAgent
, а не в IdentityFile
. Согласно примечаниям к выпуску OpenSSH , поддержка синтаксиса переменных среды была добавлена к ключевым словам конфигурации CertificateFile
, ControlPath
и IdentityFile
в OpenSSH версии 8.4 (, выпущенной в 2020 г. -09 -. 27 ), а Debian 10 имеет только версию 7.9 (с последними портированными исправлениями безопасности ).
Таким образом, на момент написания этой статьи, если вы не используете очень новый дистрибутив Linux, ваша версия OpenSSH может быть слишком старой для поддержки использования синтаксиса ${HOME}
в файле конфигурации SSH.
Некоторые ключевые слова в конфигурационном файле ssh поддерживают переменные среды, но большинство — нет. К счастью, IndentyFile — один из них.
В файле нужно использовать ${HOME}
, а не $HOME
.
Вы также можете использовать tokens
, например %d
, для обращения к домашнему каталогу. Это задокументировано man ssh_config
.