ssh
Ubuntu 11.04 için sıkı ana bilgisayar anahtarını devre dışı bırakmak istiyorum . Nasıl yapılır?
ssh -o UserKnownHostsFile=/dev/null
ssh
Ubuntu 11.04 için sıkı ana bilgisayar anahtarını devre dışı bırakmak istiyorum . Nasıl yapılır?
ssh -o UserKnownHostsFile=/dev/null
Yanıtlar:
Sizde ~/.ssh/config
(eğer bu dosya mevcut değilse, sadece oluşturun):
Host *
StrictHostKeyChecking no
Bu, bağlandığınız tüm ana bilgisayarlar için kapanacaktır. *
Yalnızca bazı ana bilgisayarlara uygulanmasını istiyorsanız, onu bir ana bilgisayar adı düzeniyle değiştirebilirsiniz .
Dosyadaki izinlerin yalnızca kendinize erişimi kısıtladığından emin olun:
sudo chmod 400 ~/.ssh/config
config
Ana dizinde adında dosya yok .
.ssh
, homedir'inizin alt dizininde olduğuna dikkat edin.
ssh -o UserKnownHostsFile=/dev/null
~/.ssh/config
Tüm Ana Bilgisayar * için dosyanızı dosyaya eklemek yerine , belirli bir ana bilgisayarı belirtmek daha güvenli olur.
Ayrıca aşağıdaki gibi komut satırında bir parametre iletebilirsiniz:
ssh -o StrictHostKeyChecking=no yourHardenedHost.com
Warning: Permanently added 'frxxx.blaps.net,10.11.12.13' (RSA) to the list of known hosts.
ssh -o UserKnownHostsFile=/dev/null
yerine olmalı .
Ssh config'inizdeki o ayarı işaret etmeye değer:
StrictHostKeyChecking no
Ana bilgisayar anahtarlarının hala .ssh / known_hosts öğesine eklendiği anlamına gelir - yalnızca onlara güvenip güvenmediğiniz sorulmaz, ancak ana bilgisayar değiştirilirse bahse girerim ki bu konuda büyük bir uyarı alırsınız. Başka bir parametre ekleyerek bu sorunu çözebilirsiniz:
UserKnownHostsFile /dev/null
Bu, tüm bu "yeni keşfedilen" ana bilgisayarları çöp kutusuna ekleyecektir. Bir ana bilgisayar anahtarı değişirse, sorun olmaz.
Ben hostkeys üzerinde bu uyarıları engellemeyi bariz güvenlik sonuçları olduğunu belirtmeyi dikkatsiz olurdu - Eğer doğru nedenlerle & o yapıyor olmamız dikkatli olmalıdır ne bağlıyoruz aslında hiç olduğunu size değil bağlamak için ne anlama geldiğini Kötü niyetli bir ana bilgisayar, bu noktada ssh içindeki güvenliğin büyük bir bölümünü bir çözüm olarak erittiğinizden beri.
Örneğin, bunu komut satırına ayarlamaya çalışacak olursanız, tam komut şöyle olacaktır:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host
Bu aptalca olurdu - ssh config dosyaları için yukarıdaki çalışma örneklerinin her durumda daha anlamlı olacağı düşünülürse.
ssh -o StrictHostKeyChecking=no -o UserKnownHostFiles=/dev/null user@host
. Benim durumumda issh
, ana bilgisayar anahtarının değiştiğini bildiğim ana bilgisayarlara bağlanmak için kullanıyorum .
UserKnownHostsFile
değil UserKnownHostFiles
.
Bilginize. Sadece cssh kullanılırken ana bilgisayar kontrolünü devre dışı bırakmayı tercih ederim.
alias cssh='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
cssh
ya ssh
?
-o
gereksiz mi?
alias relay='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 11086695@172.26.19.19 -p 2222'
benim için çalışmak
https://askubuntu.com/a/87452/129227 yardımcı olan config dosyasını değiştirmenizi önerir. Ancak herhangi bir ev sahibi için işleri açmak yerine, bunun ev sahibi başına yapılmasını istedim. Aşağıdaki komut, sürecin otomatikleştirilmesine yardımcı olur:
örnek çağrı
./sshcheck somedomain site1 site2 site3
sshcheck betiği
#!/bin/bash
# WF 2017-08-25
# check ssh access to bitplan servers
#ansi colors
#http://www.csc.uvic.ca/~sae/seng265/fall04/tips/s265s047-tips/bash-using-colors.html
blue='\033[0;34m'
red='\033[0;31m'
green='\033[0;32m' # '\e[1;32m' is too bright for white bg.
endColor='\033[0m'
#
# a colored message
# params:
# 1: l_color - the color of the message
# 2: l_msg - the message to display
#
color_msg() {
local l_color="$1"
local l_msg="$2"
echo -e "${l_color}$l_msg${endColor}"
}
#
# error
#
# show an error message and exit
#
# params:
# 1: l_msg - the message to display
error() {
local l_msg="$1"
# use ansi red for error
color_msg $red "Error: $l_msg" 1>&2
exit 1
}
#
# show the usage
#
usage() {
echo "usage: $0 domain sites"
exit 1
}
#
# check the given server
#
checkserver() {
local l_server="$1"
grep $l_server $sconfig > /dev/null
if [ $? -eq 1 ]
then
color_msg $blue "adding $l_server to $sconfig"
today=$(date "+%Y-%m-%d")
echo "# added $today by $0" >> $sconfig
echo "Host $l_server" >> $sconfig
echo " StrictHostKeyChecking no" >> $sconfig
echo " userKnownHostsFile=/dev/null" >> $sconfig
echo "" >> $sconfig
else
color_msg $green "$l_server found in $sconfig"
fi
ssh -q $l_server id > /dev/null
if [ $? -eq 0 ]
then
color_msg $green "$l_server accessible via ssh"
else
color_msg $red "ssh to $l_server failed"
color_msg $blue "shall I ssh-copy-id credentials to $l_server?"
read answer
case $answer in
y|yes) ssh-copy-id $l_server
esac
fi
}
#
# check all servers
#
checkservers() {
me=$(hostname -f)
for server in $(echo $* | sort)
do
os=`uname`
case $os in
# Mac OS X
Darwin*)
pingoption=" -t1";;
*) ;;
esac
pingresult=$(ping $pingoption -i0.2 -c1 $server)
echo $pingresult | grep 100 > /dev/null
if [ $? -eq 1 ]
then
checkserver $server
checkserver $server.$domain
else
color_msg $red "ping to $server failed"
fi
done
}
#
# check configuration
#
checkconfig() {
#https://askubuntu.com/questions/87449/how-to-disable-strict-host-key-checking-in-ssh
if [ -f $sconfig ]
then
color_msg $green "$sconfig exists"
ls -l $sconfig
fi
}
sconfig=~/.ssh/config
case $# in
0) usage ;;
1) usage ;;
*)
domain=$1
shift
color_msg $blue "checking ssh configuration for domain $domain sites $*"
checkconfig
checkservers $*
;;
esac