আমি ssh
উবুন্টু 11.04 এর জন্য কঠোর হোস্ট কী চেকিং নিষ্ক্রিয় করতে চাই । এটা কিভাবে করতে হবে?
ssh -o UserKnownHostsFile=/dev/null
আমি ssh
উবুন্টু 11.04 এর জন্য কঠোর হোস্ট কী চেকিং নিষ্ক্রিয় করতে চাই । এটা কিভাবে করতে হবে?
ssh -o UserKnownHostsFile=/dev/null
উত্তর:
আপনার ~/.ssh/config
(যদি এই ফাইলটি বিদ্যমান না থাকে তবে কেবল এটি তৈরি করুন):
Host *
StrictHostKeyChecking no
এটি আপনার সাথে সংযুক্ত সমস্ত হোস্টের জন্য এটি বন্ধ করে দেবে। আপনি *
যদি কিছু হোস্টের জন্য কেবল এটি প্রয়োগ করতে চান তবে আপনি হোস্টনামের প্যাটার্নটি সাথে প্রতিস্থাপন করতে পারেন।
ফাইলের অনুমতিগুলি কেবল নিজের অ্যাক্সেসকে সীমাবদ্ধ করে রাখুন তা নিশ্চিত করুন:
sudo chmod 400 ~/.ssh/config
config
আমার হোম ডিরেক্টরিতে কোনও ফাইলের নাম নেই ।
.ssh
আপনার হোমডিরের উপ-ডিরেক্টরিতেও নোট করুন ।
ssh -o UserKnownHostsFile=/dev/null
~/.ssh/config
সমস্ত হোস্ট * এর জন্য আপনার ফাইলে এটি যুক্ত করার পরিবর্তে কোনও নির্দিষ্ট হোস্টকে নির্দিষ্ট করা নিরাপদ।
আপনি এর মতো কমান্ড-লাইনে একটি প্যারামিটারও পাস করতে পারেন:
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
পরিবর্তে হওয়া উচিত ।
আপনার ssh কনফিগারেশনে সেটিংটি উল্লেখ করা মূল্যবান:
StrictHostKeyChecking no
এর অর্থ হোস্টকিগুলি এখনও। এসএসএইচ / জ্ঞাত_হোস্টগুলিতে যুক্ত করা হয়েছে - আপনি তাদের উপর আস্থা রেখেছিলেন কিনা সে সম্পর্কে আপনাকে কেবল জিজ্ঞাসা করা হবে না, তবে হোস্টদের পরিবর্তন করা উচিত আমি বাজি রাখতে রাজি আছি আপনি এটি সম্পর্কে বড় সতর্কতা পাবেন। আপনি অন্য একটি প্যারামিটার যুক্ত করে এই সমস্যাটি নিয়ে কাজ করতে পারেন:
UserKnownHostsFile /dev/null
এটি এই সমস্ত "সদ্য আবিষ্কৃত" হোস্টগুলি ট্র্যাসবিনে যুক্ত করবে। হোস্ট কী পরিবর্তন হলে কোনও ঝামেলা নেই।
আমি যে hostkeys এই সতর্কবার্তা circumventing সুস্পষ্ট নিরাপত্তা গার্গল হয়েছে উল্লেখ ফাঁকিবাজ হবে না - আপনি সতর্কতা অবলম্বন হল আপনি এখনই কারণে & যে করছেন হওয়া উচিত কি সংযোগ করছেন তাদের জন্য আসলে হয় কি আপনি প্রয়োজন এবং না সংযোগ চাওয়ার কথা বলছেন একটি দূষিত হোস্ট, যেহেতু এই মুহুর্তে আপনি সমাধান হিসাবে সুরক্ষার সুরক্ষার একটি বড় অংশটি সরিয়ে দিয়েছেন।
উদাহরণস্বরূপ, আপনি যদি কমান্ডলাইনটি দিয়ে চেষ্টা করে সেট করে রাখেন, সম্পূর্ণ কমান্ডটি হ'ল:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host
যদিও এটি নির্বাক হবে - উপরোক্ত যে ssh কনফিগারেশন ফাইলগুলির জন্য উপরের কার্যকারী উদাহরণগুলি সমস্ত ক্ষেত্রে আরও বোধগম্য হতে পারে।
ssh -o StrictHostKeyChecking=no -o UserKnownHostFiles=/dev/null user@host
। আমার ক্ষেত্রে আমি issh
হোস্টগুলির সাথে সংযোগ করতে ব্যবহার করি যেখানে আমি হোস্ট কী পরিবর্তনগুলি জানি।
UserKnownHostsFile
নয় UserKnownHostFiles
।
অবগতির জন্য। আমি cssh ব্যবহার করার সময় হোস্ট চেকিং অক্ষম করতে পছন্দ করি।
alias cssh='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
cssh
বা ssh
?
-o
অপ্রয়োজনীয়?
alias relay='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 11086695@172.26.19.19 -p 2222'
আমার জন্য কাজ
যা মনে হচ্ছে তা থেকে ,
NoHostAuthenticationForLocalhost yes
আপনার জন্য যথেষ্ট ভাল হতে পারে । এবং আপনি এখনও সুরক্ষার সেই দর্শন বজায় রাখতে সক্ষম হবেন।
https://askubuntu.com/a/87452/129227 কনফিগার ফাইল পরিবর্তন করতে পরামর্শ দেয় যা সাহায্য করে। তবে কোনও হোস্টের জন্য জিনিস খোলার পরিবর্তে আমি চেয়েছিলাম যে এটি প্রতি হোস্টের জন্য করা হোক। নীচের স্ক্রিপ্টটি প্রক্রিয়াটি স্বয়ংক্রিয় করতে সহায়তা করে:
উদাহরণ কল
./sshcheck somedomain site1 সাইট2 সাইট3
sshcheck স্ক্রিপ্ট
#!/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