當前位置:ag真人国际官网-ag旗舰厅官方网站 » 編程軟體 » ssh腳本

ssh腳本-ag真人国际官网

發布時間: 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的寫法;

熱點內容
phpjava交互 發布:2024-07-17 16:58:57 瀏覽:356
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
网站地图