У меня сервер с SSH работает на нестандартном порту. Вместо 22 он работает на 8129. Для входа я использую:
ssh -p 8129 hostname
Теперь, когда мне нужно настроить ключ для входа без пароля, я должен скопировать открытый ключ и вручную добавить его к авторизованному ключу. Я обнаружил, что команду ssh-copy-id
можно использовать для упрощения этого процесса, но, похоже, у нее нет возможности указать порт сервера ssh.
Есть ли какой-нибудь способ сказать ssh-copy-id
использовать порт 8129, или я должен просто забыть об этой команде и скопировать / вставить вручную, как раньше?
ssh
есть синтаксисssh -p 1234 user@host
,ssh-copy-id "-p 1234 user@host"
и наконецscp -P 1234 user@host
. Было бы здорово иметь такой же синтаксис.rsync -e "ssh -p 1234" user@host
. Я клянусь, это больше хлопот, чем стоит использовать пользовательский порт.ssh-copy-id "root@192.168.0.100 -p 12345" -i ~/.ssh/id_rsa.pub 192.168.0.100
ssh-copy-id -p 8129 user@host
работает.ssh-copy-id
не принимает аргументов, которые могут передаваться базовойssh
команде, но вы можете настроить псевдоним в~/.ssh/config
.Тогда беги
ssh-copy-id myhost
.источник
-p
флаге при регулярныхssh
попытках. Таким образом, это не только правильный ответ на этот вопрос, это и есть правильная вещь, точка.Начиная с openssh-client_6.2, теперь есть команда выделенного флага порта, позволяющая использовать этот синтаксис:
Также добавлена поддержка добавления других опций ssh с флагом -o.
Вот справочная страница Ubuntu для соответствующей версии, представленная в 13.04: http://manpages.ubuntu.com/manpages/saucy/man1/ssh-copy-id.1.html
источник
Беглый взгляд на источник показывает, что,
ssh-copy-id
похоже, нет функции, позволяющей это сделать. Однако вместо этого вы можете сделать что-то вроде следующего:источник
Это работает ( отсюда ):
источник
Я всегда использовал,
scp
чтобы скопировать это:Хотя я должен сказать, что, вероятно, буду использовать другие методы (однострочный / соединение), если буду помнить их в будущем. Но это еще один вариант для вас.
источник
На CentOS7 есть только:
Пожалуйста, постарайтесь не размещать user @ host в кавычках, иначе вы получите следующую ошибку в этом дистрибутиве:
источник
С моим macOS это сработало.
источник
Я использую эту команду:
ssh-copy-id ssh://user@ip_addr:port
Пример:
ssh-copy-id ssh://root@1.2.3.4:23
источник