yes | ssh root@10.x.x.x
RSA anahtar parmak izini kabul etmeye çalıştım , ancak bağlantı kurmak istediğimden emin olduğumda hala soruluyor. Bunu otomatik yapmanın bir yolu var mı?
yes | ssh root@10.x.x.x
RSA anahtar parmak izini kabul etmeye çalıştım , ancak bağlantı kurmak istediğimden emin olduğumda hala soruluyor. Bunu otomatik yapmanın bir yolu var mı?
Yanıtlar:
Bunları bash başlangıç dosyanıza veya benzerlerine ekleyin:
#
# ssh + scp without storing or prompting for keys.
#
function sshtmp
{
ssh -o "ConnectTimeout 3" \
-o "StrictHostKeyChecking no" \
-o "UserKnownHostsFile /dev/null" \
"$@"
}
function scptmp
{
exec scp -o "ConnectTimeout 3" \
-o "StrictHostKeyChecking no" \
-o "UserKnownHostsFile /dev/null" \
"$@"
}
Sonra kullanmak sshtmp
veya scptmp
yerine ssh
ve scp
.
NOT Bu yola inerseniz, bir ana bilgisayar anahtarının değiştiği ve güvenliği kaybedeceği konusunda uyarılmazsınız.
OpenSSH 7.6 StrictHostKeyChecking=accept-new
tam olarak bu amaç için yeni bir ayar getirmiştir :
ssh(1): expand the StrictHostKeyChecking option with two new
settings. The first "accept-new" will automatically accept
hitherto-unseen keys but will refuse connections for changed or
invalid hostkeys. This is a safer subset of the current behaviour
of StrictHostKeyChecking=no. The second setting "n", is a synonym
for the current behaviour of StrictHostKeyChecking=no: accept new
host keys, and continue connection for hosts with incorrect
hostkeys. A future release will change the meaning of
StrictHostKeyChecking=no to the behaviour of "accept-new".
SSH'yi bilinen ana bilgisayar anahtarıyla Programlı olarak kullanma
İstediğiniz şey programlı olarak kullanmak ve Ortadaki Adam saldırısından kaçınmaksa , komutu kullanarak bilinen parmak izini almanızı öneririm ssh-keyscan
. Misal:
$ ssh-keyscan -t rsa,dsa github.com 2>/dev/null
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==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
Ardından, bir komut dosyasını geçici bir dosyaya kaydetmek için sahte olabilir ve UserKnownHostsFile
seçeneği kullanabilirsiniz . Aşağıdaki örnek, çağrılabilecek bir komut dosyasıdır ssh_github
:
#!/bin/bash
HOSTKEY='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==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+ PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+ 2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=='
TEMPFILE=$(mktemp)
echo "$HOSTKEY" > $TEMPFILE
ssh -o "UserKnownHostsFile $TEMPFILE" $@
rm $TEMPFILE
Bununla, ssh_github
yerine çalıştırabilirsiniz ve betiği koyduğunuz dosya ssh
olmasa bile bağlanır known_hosts
.
Sadece şunu kullanıyorum: 'ssh -o StrictHostKeyChecking = kullanıcı yok @ host', pssh ile de kullanılabilir: 'pssh -O StrictHostKeyChecking = no -h list.text -l kullanıcı -A -i "cmd"
Saygılarımızla,
Şu -y
seçeneği kullanabilirsiniz : ie try
ssh -y root@10.x.x.x
-y
Bilinmiyorsa her zaman uzak ana bilgisayar anahtarını kabul et
code
" olarak biçimlendirmek gelenekseldir .
-y Send log information using the syslog system module. By default this information is sent to stderr.
ssh -o "StrictHostKeyChecking no" root@10.x.x.x
benim için çalıştı