shell命令--ssh
0、ssh命令的專屬圖床
點此快速打開文章【圖床_shell命令ssh】
1、ssh命令的功能說明
ssh命令是安全的加密協議,用於遠程連接Linux服務器,默認端口是22
SSH(遠程連接工具)連接原理:ssh服務是一個守護進程(demon),系統后台監聽客戶端的連接,ssh服務端的進程名為sshd,負責實時監聽客戶端的請求(IP 22端口),包括公共秘鑰等交換等信息。
ssh服務端由2部分組成: openssh(提供ssh服務) openssl(提供加密的程序)
ssh的客戶端可以用XSHELL,Securecrt,Mobaxterm等工具進行連接SSH的工作機制
服務器啟動的時候自己產生一個密鑰(768bit公鑰),本地的ssh客戶端發送連接請求到ssh服務器,服務器檢查連接點客戶端發送的數據和IP地址,確認合法后發送密鑰(768bits)給客戶端,此時客戶端將本地私鑰(256bit)和服務器的公鑰(768bit)結合成密鑰對key(1024bit),發回給服務器端,建立連接通過key-pair數據傳輸。
SSH的加密技術
加密技術:傳輸過程,數據加密。
1.SSH1沒有對客戶端的秘鑰進行校驗,很容易被植入惡意代碼
2.SSH2增加了一個確認聯機正確性的Diffe_Hellman機制,每次數據的傳輸,Server都會檢查數據來源的正確性,避免黑客入侵。
SSH2支持RSA和DSA密鑰
DSA:digital signature Algorithm 數字簽名
RSA:既可以數字簽名又可以加密SSH知識小結
1.SSH是安全的加密協議,用於遠程連接Linux服務器
2.SSH的默認端口是22,安全協議版本是SSH2
3.SSH服務器端主要包含2個服務功能SSH連接和SFTP服務器
4.SSH客戶端包含ssh連接命令和遠程拷貝scp命令等
如何防止SSH登錄入侵
1.密鑰登錄,更改端口
2.牤牛陣法
3.監聽本地內網IP(ListenAddress 192.168.25.*)
2、ssh命令的語法格式
SYNOPSIS ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
3、ssh命令的選項說明
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
4、ssh命令的實踐操作
范例1:Xshell 遠程登陸主機
ssh root@10.0.0.99 22 -->默認端口就是22,這里演示端口號位置 ssh root@10.0.0.99
范例2:一個主機遠程登陸其它主機
ip a|awk -F '[ /]+' '$NF~/eth0/ {print $3}' ip a|awk -F '[ /]+' '$NF~/eth0/ {print $3}' ssh 10.0.0.199 ssh -p 22 root@10.0.0.199
范例3:直接執行命令,最好全路徑
ssh 10.0.0.199 /bin/ls ssh 10.0.0.199 hostname hostname
范例4:查看已知主機
cat /root/.ssh/known_hosts
范例5:關於后台ssh服務的相關
查詢openssl軟件
rpm -qa openssh openssl
查詢sshd進程和端口
ps -ef | grep ssh
查看ssh端口
netstat -lntup |grep ssh ss | grep ssh netstat -a | grep ssh netstat -lnt | grep 22 netstat -lntup | grep ssh | wc -l -->只要大於2個就是ssh服務就是好的
查看ssh的秘鑰目錄
ll /root/.ssh/known_hosts -->當前用戶家目錄的.ssh目錄下
ssh的配置文件
egrep -v '^$|#' /etc/ssh/sshd_config
范例6:免秘鑰登陸,登錄的時候不用使用密碼
生成密鑰對
ssh-keygen -->-->連續回車 ssh-keygen -t dsa -->也可指定驗證方式,使用-t參數 Your identification has been saved in /root/.ssh/id_rsa. -->私鑰位置 Your public key has been saved in /root/.ssh/id_rsa.pub. -->公鑰位置
RSA與DSA加密算法的區別
RSA:是一種加密算法(PS:RSA也可以進行數字簽名的),它的簡寫的來由是Ron Rivest、Adi Shamir和Leonard Adleman這三個人姓氏的第一個字母連接起來就是RSA。DSA:就是數字簽名算法的英文全稱的簡寫,即Digital Signature Algorithm,簡寫就是DSA,
RSA既可以進行加密,也可以進行數字簽名實現認證,而DSA只能用於數字簽名從而實現認證。也可以免交互快速生成密鑰對
ssh-keygen --help -->查看用法 mv /root/.ssh/* /tmp -->將之前產生的密鑰對移走 ssh-keygen -t rsa -f /root/.ssh/id_rsa -P "" -q -->免交互產生密鑰對 ls /root/.ssh
拷貝密鑰中的公鑰文件到目標主機上
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.199 -->輸入yes和目標主機root密碼 scp -rp ~/.ssh/id_rsa.pub 10.0.0.199:~/.ssh/authorized_keys -->也可以使用scp命令 ls -ld ~/.ssh/ -->特別注意權限700 ls -l ~/.ssh/ -->特別注意權限600也可免交互拷貝公鑰
rpm -qa sshpass yum -y install sshpass &>/dev/null -->使用此工具 rpm -qa sshpass sshpass -p123456 ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.199 "-o StrictHostKeyChecking=no" -->參數-p是可加密碼
開始測試是否免秘鑰
ssh 10.0.0.199 ifconfig eth0
開發腳本實現批量管理服務器簡單思路
cat >cmd.sh <<'EOF' for n in 199 do echo "=====10.0.0.$n======" ssh 10.0.0.$n "$1" done EOF sh cmd.sh hostname
『MineGi有話說』:快來掃一掃下面鏈接的二維碼,加入我們吧!
