Используя ssh
командная строка (OpenSSH), я могу указать цифровой отпечаток ключа хоста сервера?
Это возможно с использованием winscp.com (например). -hostkey="ssh-rsa 2048 AA:BB:CC...etc
Я прочитал страницу справочника пару раз, я приношу извинения, если я пропустил очевидное там.
Я не хочу просто автоматический, принимают ключ хоста, и я не хочу требовать, чтобы пользователь обновил их known_hosts
, а скорее укажите, что хост вводит некоторую форму на командной строке.
В OpenSSH нет параметра командной строки для передачи отпечатка ключа хоста.
Хотя вы можете использовать временный файл (с тем же форматом, что и known_hosts
) и заставьте ssh
использовать его, используя -o UserKnownHostsFile
:
ssh -o "UserKnownHostsFile my_temp_known_host" host.example.com
См. ssh
(для -o
) и ssh_config
(для UserKnownHostsFile
) справочные страницы.
Вы также можете рассмотреть возможность использования StrictHostKeyChecking yes
.
Как предложено на Auto accept Отпечаток ключа rsa из командной строки , вы можете написать небольшой скрипт, который позволит вам добиться этого:
#!/bin/bash
TEMPFILE=$(mktemp)
echo "$1" > $TEMPFILE
ssh -o "UserKnownHostsFile $TEMPFILE" ${@:2}
rm $TEMPFILE
Если вы вызовете скрипт ssh_known_host
, вы можете использовать его, передав ключ как первый аргумент:
ssh_known_host 'github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==' git@github.com