sftp在指令碼中如何時使用(不用輸入密碼)
實現過程:
主要步驟如下:
1.為執行shell指令碼的本地使用者生成金鑰對
2.將其中的公鑰分發到sftp欲登入的遠端伺服器上
3.編寫並以上面的本地使用者執行shell指令碼
一.生成金鑰對
在shell指令碼中使用sftp時必須用到金鑰對(公鑰和私鑰).可使用下列方式生成(SSH 2.X版本),這裡本地使用者記為:local_user:
ssh-keygen -t rsa
螢幕提示:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/local_user/.ssh/id_dsa):
# 按回車儲存為: /home/local_user/.ssh/id_dsa,即當前使用者local_user的私鑰
Enter passphrase (empty for no passphrase):
# 按回車,表示讀取金鑰時不需要金鑰的密碼
Enter same passphrase again:
# 確認金鑰的密碼,必須和上面的輸入相同
Your identification has been saved in /home/local_user/.ssh/id_dsa.
# 私鑰儲存資訊
Your public key has been saved in /home/local_user/.ssh/id_dsa.pub.
# 公鑰儲存資訊
The key fingerprint is:
ec:41:e8:08:38:0b:f8:1e:bc:92:98:32:fc:d7:69:7d ...
# 金鑰指紋
二.分發公鑰
為了使用金鑰,必須將公鑰分發到欲登入的遠端伺服器上,這裡遠端伺服器記為remote_host,欲登入的遠端使用者記為remote_user
1.copy公鑰到欲登入的遠端伺服器的遠端使用者的家目錄下,例如:
copy id_dsa.pub到remote_host:/home/remote_user/.ssh/
若目錄/home/remote_user/.ssh/不存在,請先建立之.
2.將copy來的公鑰檔案改名為authorized_keys
3.修改公鑰檔案的訪問許可權
chmod 644 authorized_keys
三.示例
目標:把某路徑下的COBOL85.pco拷貝成aaaa
#!/bin/bash
sftp [email protected] << EOF
put /home/ntt12/work/WWW/COBOL85.pco /home/ntt12/work/WWW/aaaa
quit
[EOF]
-------------------------------------------------------------------------------------
sftp 是一個互動式檔案傳輸程式。它類似於 ftp, 但它進行加密傳輸,比FTP有更高的安全性。下邊就簡單介紹一下如何遠端連線主機,進行檔案的上傳和下載,以及一些相關操作。
舉例,如遠端主機的 IP 是 202.206.64.33或者是域名www.hebust.edu.cn,使用者名稱是 fyt ,在命令列模式下:sftp
sftp>
如果登陸遠端機器不是為了上傳下載檔案,而是要修改遠端主機上的某些檔案。可以
ssh [email protected] (其實sftp就是ssh 的一個程式。)
sftp> get /var/www/fuyatao/index.php /home/fuyatao/
這條語句將從遠端主機的 /var/www/fuyatao/目錄下將 index.php 下載到本地 /home/fuyatao/目錄下。
sftp> put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/
這條語句將把本地 /home/fuyatao/downloads/目錄下的 linuxgl.pdf檔案上傳至遠端主機/var/www/fuyatao/ 目錄下。
你如果不知道遠端主機的目錄是什麼樣, pwd命令可以幫您查詢遠端主機的當前路徑。查詢本機當前工作目錄 lpwd.
改變路徑可以用cd ,改變本機路徑可以用 lcd;
ls rm rmdir mkdir 這些命令都可以使用。同理呼叫本機都是加 l , 即 lls lrm.
要離開sftp,用exit 或quit、 bye 均可。詳細情況可以查閱 man sftp.
如果覺得在命令列模式下不太方便,可以 sudo apt-get install gftp。在圖形介面下操作就簡便多了。
相關推薦
sftp在指令碼中如何時使用(不用輸入密碼)
實現過程: 主要步驟如下: 1.為執行shell指令碼的本地使用者生成金鑰對 2.將其中的公鑰分發到sftp欲登入的遠端伺服器上 3.編寫並以上面的本地使用者執行shell指令碼 一.生成金鑰對 在shell指令碼中使用sftp時必須用到金鑰對(公鑰和私鑰).可使用下列
解決 shell指令碼中SCP命令需要輸入密碼的問題
本文轉自:https://blog.csdn.net/u012454773/article/details/72779439 使用金鑰檔案,兩臺機器建立信任 這裡假設主機A(192.168.100.3)用來獲得主機B(192.168.100.4)的檔案。 在主機A上執行如下命令來生成配對金鑰:
共享一個目錄,任何人都可訪問,不用輸入密碼即可訪問,要求只讀
目錄 eve lob host etc server 工作組 ini main 1、服務端配置 [[email protected]/* */ ~]# yum install -y samba samba-client # 安裝 Samba [[e
ubuntu安裝mysql 時未提示輸入密碼
我在Ubuntu16.04版本中使用終端安裝MySQL5.7時,按照度孃的教程,搜尋如何安裝,大多是如下程式碼: sudo apt-get install mysql-server sudo apt-get install mysql-client 檢查MySQL是否執行: su
Git -- 解決github提交程式碼不用輸入密碼
解決方案: 方案一: 在你的使用者目錄下新建一個文字檔案.git-credentials Windows:C:/Users/username Mac OS X: /Users/username Linux: /home/
使用SSM 或者 springboot +mybatis時,對資料庫的認證資訊(使用者名稱,密碼)進行加密。
通常情況下,為了提高安全性,我們需要對資料庫的認證資訊進行加密操作,然後在啟動專案的時候,會自動解密來核對資訊是否正確。下面介紹在SSM和springboot專案中分別是怎樣實現的。 無論是使用SSM還是springboot,首先我們需要一個加密工具,這裡我採用的是AES 高階加
解決 Ubuntu 1804 安裝MySQL時未提示輸入密碼的問題
Ubuntu 1804 安裝MySQL 5.7 執行命令安裝MySQL sudo apt install mysql-server sudo apt install mysql-client 安裝後看下是否啟動: sudo ps aux | grep mysql 如果
c++中求1!+2!+3!+...+20!(不用遞迴)
c++中求1!+2!+3!+…+20!(不用遞迴) #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) {
shell指令碼中棧(stack)簡單封裝
操作命令 init_stack name # 初始化 push_stack name data # 進棧操作 pop_stack name # 出棧操作 print_stack name # 輸出棧中內容 實際程式碼 function i
使scp不用輸入密碼
有些時候,我們在複製/移動檔案 到另一臺機器時會用到scp,因為它比較安全。但如果每次都要輸入密碼,就比較煩了,尤其是在script裡。不過,ssh有另一種用金鑰對來驗證的方式。下面寫出我生成密匙對的過程,供大家參考。第一步:生成密匙對,我用的是rsa的金鑰。使用命令 "s
如何在ssh遠端linux伺服器時不需要輸入密碼
目的: 期望A伺服器在對B伺服器執行ssh或者scp等命令的時候不需要輸入密碼 實現方法: 1.通過安裝sshpass服務 2.通過金鑰驗證的方式 操作過程: 一、通過sshpass的方式達到密碼非互動 1.安裝sshpass服務(centeros 7上可直接yum安裝,
sudo 不用輸入密碼
第一種方式 pw.sh #!/bin/bash echo 'xxxxx' SUDO_ASKPASS=/var/lib/jenkins/pw.sh sudo -A gbp buildpackage --git-ignore-branch -sa 第二種方式 vim /
使用JSCH連線時,需要輸入密碼的解決方法
背景: 在做一個安裝指令碼,期間會執行一些資料庫的操作,需要DBA帳號才可以執行。 我們用的JSCH建立SSH通道,直接連線到目標機器上執行,效果和開啟命令列是一樣的,唯一特殊的,就是關於DBA的密碼的問題。 Oracle(我們的資料庫用的Oracle)的指令碼中是提供了連
Shell指令碼互動之:自動輸入密碼
Shell指令碼互動之:自動輸入密碼 2016年04月09日 19:41:26 zhangjikuan 閱讀數:58208 標籤: Shell互動自動輸入密碼expect重定向管道 更多
Linux 中執行Shell 指令碼的方式(三種方法)
Shell 指令碼的執行方式通常有如下三種: (1)bash script-name 或者 sh script-name;(2)path/script-name或者./script-name;(3)sourcescript-name或者. script-name。下面,分別
Linux中執行Shell指令碼的方式(三種方法)
Shell 指令碼的執行方式通常有如下三種:(1)bash script-name 或者 sh script-name;(2)path/script-name或者./script-name;(3)source script-name或者. script-name。下面,分別介
Web專案中對配置檔案中的密碼進行加密(資料庫連線密碼)
Web專案的如配置檔案applicationContext.xml檔案中,如資料庫連線的使用者密碼資訊的加密。 我們平時直接寫的專案配置是這樣的: <bean id="dataSource" class="org.apache.commons.dbcp.B
Moodle中限制使用者修改自己姓名 暱稱等(可以改密碼)
在網站管理,許可權中,選擇角色管理,認證使用者(所有可登入使用者),Ctrl + f 搜尋使用者資料,把編輯使用者資料相關許可權設定為禁止。 這樣所有使用者繼承的許可權都可以限制修改 當然如果你的全是臨時使用者反而需要修改成實名的,那麼保留相關許可權就行,後
ubuntu 設定su,sudo不用輸入密碼
設定sudo免密碼 sudo是linux系統管理指令,是允許系統管理員讓普通使用者執行一些或者全部的root命令的一個工具,如halt、reboot、su等等。 登入到root使用者 將使用者加入sudoers visudo //或者vi /et
解決ssl啟動時要httpd輸入密碼的問題
解決方案有2種1:去掉/usr/local/bin/apachectl startssl啟動的pass phrase,用空pass phrase啟動apache(while preserving the original file):$ cp server.key server.key.org$ openss