1. 程式人生 > >linux ssh scp expect/金鑰 自動登入並自動執行指令碼

linux ssh scp expect/金鑰 自動登入並自動執行指令碼

不想使用金鑰,那就使用expect,自動填充密碼,現在自動登入,以及簡單自動化操作。

ssh自動登入

#!/usr/bin/expect -f
 set ip 192.168.1.10
 set password 881234
 set timeout 10
 spawn ssh [email protected]$ip
 expect {
 "*yes/no" { send "yes\r"; exp_continue}
 "*password:" { send "$password\r" }
 }
 expect "#*"
 send "pwd\r"
 send "ls\r"
 send  "exit\r"
 expect eof


scp自動登入

#!/usr/bin/expect -f
 set ip 192.168.1.10
 set password 881234
 set remotelog /opt/oracle/oracle/diag/rdbms/test/test/alert/log.xml
 set localdir /home/nutch

 set timeout 10
 spawn scp [email protected]$ip:$remotelog $localdir
 expect {
 "*yes/no" { send "yes\r"; exp_continue}
 "*password:" { send "$password\r" }
 }
 expect eof

金鑰登入

建立金鑰,並將public金鑰上傳到遠端伺服器   公鑰在遠端機上必須重新命名為authorized_keys
$ssh-keygen -t rsa 
$scp  ~/.ssh/id_rsa.pub [email protected]:.ssh
$ssh  [email protected] "mv .ssh/id_rsa.pub .ssh/authorized_keys"

測試是否成功

#ssh遠端建立檔案
$ssh [email protected] "touch /home/oracle/123"
#scp將檔案傳至本地
$scp [email protected]
:/home/oracle/123 /home/nutch

只要公鑰和私鑰配對 分發給所有使用者都可以使用

例如上面產生的私鑰分發到 /var/www/.ssh目錄下面,則Apache 預設使用者www-data則可以實現遠端無密碼登入登入擁有配對的賬號

上面說的實在ubuntu下   centos下apache預設不能登入,解決方法

# cat /etc/passwd | grep apache 發現它的shell是“/sbin /nologin”,需要將起改成“/bin/bash” # vipw /etc/passwd cat /etc/passwd下可以看到 apache的使用者資料夾是/var/www所以將.ssh放在該資料夾下 同時chown -R 777 .ssh/  許可權設定為700

測試:

php指令碼 1.php

<?php
shell_exec('./test.sh');
?>
test.sh內容
ssh [email protected] "touch 12.txt"

頁面訪問 localhost/1.php 

192.168.1.100  /home/oracle生成 12.txt則證明安裝成功。

相關推薦

linux ssh scp expect/ 自動登入自動執行指令碼

不想使用金鑰,那就使用expect,自動填充密碼,現在自動登入,以及簡單自動化操作。 ssh自動登入 #!/usr/bin/expect -f set ip 192.168.1.10 set password 881234 set timeout 10 spawn

linux shell ssh實現自動登入,並且執行一些操作返回到當前主機

#!/usr/bin/expect -f #-------------------------------------------------- about us # product: monitorone # Author:matthew # Last Modified:

ssh 配置免登入

隨手筆記,要是寫的不好請見諒 1、ssh免金鑰的登陸原理: 通過命令生成一對和私鑰,公玥可以比喻為鎖,私鑰比喻為鑰匙,將鎖放在想訪問的伺服器中,我們就可以拿鑰匙去訪問伺服器啦。 2、 配置web

linux生成對,遠端登入

情景:需要在 B機以使用者 test身份,無金鑰登入遠端系統 A機一、遠端linux系統配置(A機)1.修改sshd配置檔案(/etc/ssh/sshd_config). RSAAuthentication yes  PubkeyAuthentication yes  Aut

Linux ssh服務開啟秘和密碼認證

authent 列表 scom via con x11 ati cit ren 問題描述: 實現Linux秘鑰和密碼同時認證 解決方案: vim /etc/ssh/sshd_config 基本參數: PermitRootLogin yes #允許r

Linux SSH , SCP 建立信任關系(免密傳輸)

oot ssp pub 文章 保存 shell author blog 遠程 最近有個需求,Jenkins需要將war傳輸到各個項目節點中,所以需要遠程執行各個節點的shell腳本.但是中間有個輸入密碼的過程,在自動化部署中是行不通的,故需要增加免密登錄.具體如下: 如果

Centos 解決SSH 免密碼登入 以及Crontab製作定時SSH自動登入和關閉的指令碼

一、SSH免密碼登入 假設要登入的機器為192.168.1.100,當前登入的機器為192.168.1.101。 首先在101的機器上生成金鑰(如果已經生成可以跳過): $ ssh-keygen -t rsa一路回車即可。 然後在將生成的公鑰複製到機器100上的~/.ssh/authorized_ke

linux ssh scp免密碼

文件 所有 手動 無需 系統 inux linux author 生成 首先登入一臺linux服務器做為母機(即登入其他linux系統用這臺做為入口);執行一行命令生成key文件:ssh-keygen -t rsa 2.在母機上,進入/root/.ssh目錄,找到id_

Linux SSh scp使用【遠端檔案/目錄的傳輸】

# scp -r  [email protected]:/user/local/  /home/test/ r 引數表示遞迴複製(即複製該目錄下面的檔案和目錄);[email protected] 表示使用root使用者登入遠端伺服器www.vpser.net,:/user/local

git之使用ssh-add新增

github的ssh配置如下: 一 、 設定git的user name和email: gitconfig−−globaluser.name"xuhaiyan" git config –global

linux ssh 使用深度解析【key登入詳解】

ssh介紹 SSH全稱Secure SHell,顧名思義就是非常安全的shell的意思,SSH協議是IETF(Internet Engineering Task Force)的Network Working Group所制定的一種協議。SSH的主要目的是用來取

自動登入過BSO的指令碼

 這個指令碼是同事寫的, 當然, 之前我自己也寫了一個, 但沒有像他下面一樣加異常, 其餘都是一樣的. 記錄一下, 以後要用直接用. #!/usr/bin/expect set username "****@163.com" set password "password" #P

【2018.05.09】python3.6 + selenium 實現GitHub自動登入自動退出

#coding = utf-8 ''' python + selenium 實現GitHub自動登入,自動退出 login() logout() ''' import time from selenium import webdriver driver = webdriver.Chrome

記一次用python selenium 通過chrome+chromedriver 實現公司內網上網自動登入認證、上班自動登入打卡python指令碼筆記

背景 寫這個指令碼純屬是覺得好玩而已,一開始以為很簡單,看了大部分網上的程式碼確實很簡單就那麼幾行,自己也就想試試,後來發現由於這個還涉及了一些html的知識點發現還是沒那麼簡單的,從一開始獲取登入按鈕的input id到後面打卡按鈕無法使用發現還使用了ifr

如何建立本地對,新增到Coding.net上

1.開啟Git Bash 2.建立本地ssh a)輸入ssh-keygen -t rsa -C "[email protected]",(github註冊的郵箱),接下來enter鍵即可(也可以輸入密碼)。 b)生成的檔案儲存在C:\Users\Adminis

telnet自動登入執行任務

autotelnet.sh可以通過建立管道的方式,實現自動登入,並自動從tftp伺服器下載測試驅動模組進行替換,最後自動退出回到登入之前的狀態。 #autotelnet.sh #!/bin/bash if (( $# != 2 )) then echo "

Shell應用(5): 自動生成安裝服務指令碼

指令碼概述   一般地,當在目標機器編譯安裝某個服務程式後,為了使服務能開機自啟動和關機自停止,則需要將其新增為系統服務。但不同的Linux系統管理服務的方法不同,如Ubuntu使用update-rc.d命令,而RedHat則使用chkconfig命令。因此為了能自動識別系統的型別,減少人工控制,

在SQL2008中,如何讓id自動生成自動遞增?如何讓時間預設生成?

id自動遞增:    如果是用語句操作,這樣定義:ID INT IDENTITY,如果是要生成一對數字,這樣定義:ID INT IDENTITY(1,1)    如果要在SQL Server的表中設定

linux expect詳解(ssh自動登入)

shell指令碼實現ssh自動登入遠端伺服器示例: #!/usr/bin/expect spawn ssh [email protected] expect "*password:" send "123\r" expect "*#" interact Expect是一個用來處理互動的命

在iterm中用expect指令碼實現ssh, telnet對aix, linux自動登入

在mac上轉戰iterm以後,才知道自動登入的內部原理,原來可以用expect指令碼做和伺服器的自動互動,當然自動登入只是其中的一小部分功能啦 ssh自動登入: #!/usr/bin/expect