sftplinux腳本
❶ 如何實現shell腳本使用sftp的用戶名密碼自動登錄,而不使用公鑰
你都用SSH協議了,為什麼不用私鑰+公鑰?
而且私鑰+公鑰才能實現跳過密碼操作remote host。
❷ linux中使用shell腳本訪問sftp伺服器,密鑰不會用
密鑰用於建立SSH互信環境,本地公鑰需要分發到遠端伺服器目錄,可實現本地主機到遠端SFTP伺服器的無訪問.
1. 生成密鑰對,取得本地公鑰,如:id_dsa.pub
2. 登錄到遠端SFTP伺服器用戶HOME目錄的.ssh文件夾
3. 將id_dsa.pub的內容追加到遠端伺服器.ssh/autorized_keys文件尾部並保存
4. 嘗試與本地主機用戶SFTP到遠程伺服器: sftp user@server_addr
❸ linux系統中SFTP腳本如何添加打包tar命令
寫tar的全路徑
❹ 如何實現shell腳本使用sftp的用戶名密碼自動連接,而不使用公鑰。
是指特定shell在連線時侯,透過解開密碼用戶的用戶解鎖使用嗎?不太懂是指放在ghost資料夾的shell資料夾,還是另外放的壓縮檔?或者是放在master夾內另外放的資料夾shell?
❺ shell腳本實現自動sftp 下載 指定文件
1、設置linux無密碼訪問
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub |ssh -p22 [email protected] `cat - >> ~/.ssh/authorized_keys`
2、scp -P22 /opt/a.txt [email protected]:/opt
❻ linux系統sftp結合expect使用時,寫腳本遇到參數問題
您好,你的腳本設置filename變數語法不對,filename="xxxx"這是shell的語法。
expect應該如下設置變數,變數和值之間是空格分隔,不是"="符號:
set <var> <value>
❼ linux定時通過shell腳本利用sftp命令上傳文件。需要手動輸入密碼,用openSSH-clients這個插件可以解決么
Linux系統提供多種不同的Shell以供選擇。
常用的有Bourne Shell(簡稱sh)、C-Shelll(簡稱csh)、Korn Shell(簡稱ksh)和Bourne Again Shell (簡稱bash)。
Bourne Shell是AT&T Bell實驗室的 Steven Bourne為AT&T的Unix開發的,它是Unix的默認Shell,也是其它Shell的開發基礎。Bourne Shell在編程方面相當優秀,但在處理與用戶的交互方面不如其它幾種Shell。
C Shell是加州伯克利大學的Bill Joy為BSD Unix開發的,與sh不同,它的語法與C語言很相似。它提供了Bourne Shell所不能處理的用戶交互特徵,如命令補全、命令別名、歷史命令替換等。但是,C Shell與BourneShell並不兼容。
Korn Shell是AT&T Bell實驗室的David Korn開發的,它集合了C Shell和Bourne Shell的優點,並且與Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和編程交互界面都很好。
Bourne Again Shell (即bash)是自由軟體基金會(GNU)開發的一個Shell,它是Linux系統中一個默認的Shell。Bash不但與Bourne Shell兼容,還繼承了C Shell、Korn Shell等優點
❽ 如何在shell腳本里使用sftp批量傳送文件
如何在shell腳本里使用sftp批量傳送文件
主要步驟如下:
1.為運行shell腳本的本地用戶生成密鑰對
2.將其中的公鑰分發到sftp欲登錄的遠程伺服器上
3.編寫並以上面的本地用戶運行shell腳本
一.生成密鑰對
在shell腳本中使用sftp時必須用到密鑰對(公鑰和私鑰).可使用下列方式生成(SSH 2.X版
本),這里本地用戶記為:local_user:
$ ssh-keygen –d
屏幕提示:
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_hos
t,欲登錄的遠程用戶記為remote_user
1.公鑰到欲登錄的遠程伺服器的遠程用戶的家目錄下,例如:
id_dsa.pub到remote_host:/home/remote_user/.ssh/
若目錄/home/remote_user/.ssh/不存在,請先創建之.
2.將來的公鑰文件改名為authorized_keys
3.修改公鑰文件的訪問許可權
chmod 644 authorized_keys
三.示例
目標:
從遠程伺服器remote_host:/home/remote_user/data/
傳送下列文件到本地計算機的當前目錄: /home/local_user/data/:
20050201
20050202
20050203
20050204
20050205
方式1: 批模式
sftp提供了一個選項-b,用於集中存放sftp命令(該選項主要用於非交互模式的sftp).因此
對於上面的目標,可以生成如下的命令文件:
cd /home/remote_user/data/
lcd /home/local_user/data/
-get 20050201 .
-get 20050202 .
-get 20050203 .
-get 20050204 .
-get 20050205 .
quit
這里存為: sftp_cmds.txt
說明: get命令前加一個"-"以防止其執行錯誤時sftp執行過程被終止.
以下為腳本示例:
#!/bin/sh
sftp -b ./sftp_cmds.txt remote_user@remote_host
方式二:
#!/bin/sh
sftp remote_user@remote_host << EOF
cd /home/remote_user/data/
lcd /home/local_user/data/
-get 20050201 .
-get 20050202 .
-get 20050203 .
-get 20050204 .
-get 20050205 .
quit
EOF
❾ linux下 如何寫一個shell 使用sftp發送文件到指定伺服器 每次要手工輸入
你可以試試下面的方法,把sftp內的操作都寫到EOF裡面
sftp -oPort=$PORT $USERNAME@$IP <<EOF
cd $FTP2DIR
mkdir $DATA_DATE
cd $DATA_DATE
put $EXPORT_LOCAL_DIR/$data_file_name
put $EXPORT_LOCAL_DIR/$verf_file_name
exit
close
bye
EOF
❿ linux下shell腳本用sftp傳文件,但是要通過代理伺服器出去。怎麼配置
這個是伺服器和程序方面的問題哦, 不過可以幫助搞定一下的啊 , 能看一下wo的網名嗎?在線的幫解決一下 啊