當前位置:首頁 » 編程軟體 » ssh腳本

ssh腳本

發布時間: 2022-01-08 06:34:53

⑴ 如何用腳本添加ssh命令的密碼

#!/usr/bin/expect
set pw pawword
spawn ssh 192.168.1.200
expect 'password: '
send "$pw\r"
expect '#'
send "exit\r"
expect eof

chmod +x ssh.sh
./ssh.sh 試試呢 哈哈

⑵ 請問我在linux下想實現一個終端同時通過SSH執行其它多個終端內的shell腳本怎麼實現

ssh $IP_102 -l $User "sh 102.sh"&
ssh $IP_103 -l $User "sh 103.sh"&
這樣執行就可以同時執行了,否則是一個一個執行的。
如果判斷是否執行完成就寫一個log日誌,看好讀日誌就可以了。

⑶ 在腳本中使用ssh時的幾個注意事項

1. 超時設置
-o ConnectTimeout=3
2. 重定項標准輸入到/dev/null
-n
當使用這樣的形式時 (使用 key 認證):
while read line ; do ip=$(awk '{print $1}' < << $line ) ssh -n -o ConnectTimeout=3 $i uptime done < file
假如此時不使用 -n ,則只有第一行會被處理。
3. 批處理模式,在腳本中使用再合適不過(使用 key 認證)
-o BatchMode=yes
當 key 認證不成功時,有可能會彈出「密碼認識」,從而影響腳本運行下去,此時可以打開 BatchMode模式。
4. 遇到未知主機:
-o StrictHostKeyChecking=no
當遇到未知的主機公鑰時,自動接受key。
5. 糟遇遠程主機連接後無響應:
當設置了 BatchMode 時 ServerAliveInterval 默認被設置成 300 秒(服務端無數據傳回的持續時間)。
ServerAliveCountMax相當於是重試的次數,比如下面的例子,15秒 x 3 = 45 秒,即當 45 秒後,真正超時斷開。
TCPKeepAlive打開時,便於發現網路的斷開。當網路故障(比如路由器壞掉)或者遠端開機、死機時,連接會主動斷開,否則的話,將會等待相當一段時間後才會斷開。
-o ServerAliveInterval=15
-o ServerAliveCountMax=3
-o TCPKeepAlive=yes
需要注意的是,這里的超時、無響應,僅是 ssh或者sshd無影響,假如是在遠程上執行程序,程序無響應,則不能處理此時的超時,解決方法見《在Shell中實現非同步》。

⑷ 如何寫shell腳本自動通過ssh命令登錄到伺服器

用EXPECT實現用密碼登錄,也可配置成不需要密碼

#!/usr/bin/expect -f

if { $argc < 3 } {

puts stderr "Usage: $argv0 IPAdress Login OldPasswd"

exit
}

set IPADDR [lindex $argv 0]
set LOGIN [lindex $argv 1]
set OLD_PW [lindex $argv 2]

set timeout 30

stty -echo

spawn ssh $IPADDR -l $LOGIN
expect {
"*Password:*" {
send "$OLD_PW\r"
exp_continue
} "*Last login:*" {
#interact
exit 0
} timeout {
send_user "connection to $IPADDR timeout!\n"
exit 1
} "*incorrect*" {
send_user "password incorrect!\n"
exit 2
} "*Permission*" { #for LINUX ssh
send_user "password Error!\n"
exit 2
} eof {
exit 3
}
}

⑸ Linux。。shell 腳本中經常要用到ssh。可是ssh又要互動式輸密碼。怎麼能不交互的輸密碼呢

1、登錄A機器
2、ssh-keygen -t [rsa|dsa],將會在~/.ssh下生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 文件復制到B機器的 .ssh 目錄, 並 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機器登錄B機器的目標賬戶,不再需要密碼了(直接運行 #ssh 192.168.1.100 )

面交互輸入,就得使用expect腳本,例:
#!/bin/bash
passwd='123456'
/usr/bin/expect <<-EOF
set time 30
spawn ssh [email protected]
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$passwd\r" }
}
expect "*#"
send "cd /home/trunk\r"
expect "*#"
send "ls\r"
expect "*#"
send "exit\r"
interact
expect eof
EOF

⑹ 如何用shell腳本實現SSH的遠程登錄

要帶跳過輸入密碼的環節么?
如果你想每次鏈接的時候自己手動輸入密碼,那就參考這樣寫
#!/bin/bash
ip=$1
ssh 用戶名@ip地址 -p埠號

保存後給執行許可權,運行時在腳本後面直接跟一個IP地址

如果你想每次鏈接的時候自動跳過輸入密碼的環境,那就再網路下「ssh建立信任關系」,腳本依然還是這個腳本,只是登陸的時候做了互相信任的話,就不需要密碼了

⑺ 需求:linux腳本ssh登錄到A機器然後再ssh到B機器然後再ssh到C機器,執行命令。這個腳本怎麼寫

#!/usr/bin/expect
spawnsshaaa@ip-address
expect"password:"
send"password "
expect"$"
send"sshbbb@ip-address "
expect"bbb@ip-address'spassword:"
send"password "
expect"$"
send"sshccc@ip-address "
expect"ccc@ip-address'spassword:"
send"password "
expect"$"
send"pwd "
interact

⑻ 在linux 腳本中使用了遠程登錄ssh,結果是 ssh:command not found

有可能腳本執行沒有設置環境變數PATH,腳本里加上export PATH=/bin:/usr/bin:$PATH
或者把ssh路徑寫全,比如 /usr/bin/ssh

⑼ linux下如何使用ssh遠程登錄主機 執行shell腳本

知道linux的ip,用戶和密碼就可以遠程登陸了。在你的SSH 客戶端會有一個linux的終端。在這執行命令就可以了。

⑽ linux怎麼寫腳本讓自動登錄SSH或者telnet

使用expecte腳本可以實現此命令;網路以下expecte的寫法;

熱點內容
循跡小車演算法 發布:2024-12-22 22:28:41 瀏覽:82
scss一次編譯一直生成隨機數 發布:2024-12-22 22:04:24 瀏覽:956
嫁接睫毛加密 發布:2024-12-22 21:50:12 瀏覽:975
linuxbin文件的安裝 發布:2024-12-22 21:46:07 瀏覽:798
vlcforandroid下載 發布:2024-12-22 21:45:26 瀏覽:664
電腦做網關把數據發送至伺服器 發布:2024-12-22 21:44:50 瀏覽:431
新華三代理什麼牌子的伺服器 發布:2024-12-22 21:33:21 瀏覽:342
歡太會員密碼是什麼 發布:2024-12-22 20:57:28 瀏覽:74
sqllocaldb 發布:2024-12-22 20:07:08 瀏覽:126
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:301