顯示具有 RSA 標籤的文章。 顯示所有文章
顯示具有 RSA 標籤的文章。 顯示所有文章

2012年10月29日 星期一

如何在AIX作業系統排程crontab中執行sftp指令 (以RSA key認證時)

建議先讀一下這篇...算是前文吧...
使用 SFTP with RSA key 認證 (不需密碼)
http://n9tech.blogspot.tw/2012/08/aix53-sftp-with-rsa-key.html

作業系統:AIX 5.3


AIX作業系統下,SFTP使用RSA key認證時的shell script放在排程(crontab)裡的寫法,跟FTP不同
得修改程式架構
並不是把原程式裡的FTP指令前面加個S這麼簡單 (←這是我一開始的幻想 嗚)

AIX環境中,必須使用sftp -b這個參數,並把「連線指令」跟「上傳/下載指令」分開成兩個檔案
在crontab中只要執行「連線指令」的shell script檔案即可


(1) sftp.sh →連線指令shell script,一行解決
=================================================
sftp -b /user/sftp.cmd testsftp@10.11.11.11
=================================================

說明一下
sftp -b:請愛用-b參數
/user/sftp.cmd:絕對路徑+上傳/下載指令檔名
testsftp@10.11.11.11:建好RSA Key的帳號@對方主機IP


(2) sftp.cmd →sftp指令
=================================================
ls
cd /raw    //切換遠端目錄
pwd
lcd /home/abc/ //切換本地目錄
mput *    //上傳所有檔案...下載就是get / mget
bye
=================================================


所以本例,在crontab就是執行(1)那支sftp.sh

總之...又是一個說破就不值錢的東西XD



2012年8月29日 星期三

使用 SFTP with RSA key 認證 (不需密碼)

作業系統:AIX5.3 不過這篇寫的跟OS應該沒有很大關係


(1) 從sftp client端產生RSA key,預設目錄為$HOME/.ssh/id_rsa/ 所以key會根據帳號而有所不同
   A帳號執行ssh-keygen -t rsa產生的Key,只專屬A帳號使用
   最後生成的key會寫在這裡:$HOME/.ssh/id_rsa.pub
 

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): //通常不變更預設目錄,直接按enter
Enter passphrase (empty for no passphrase): //直接按enter
Enter same passphrase again: //直接按enter
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.  //這檔案就是RSA key
The key fingerprint is:
42:cf:5b:16:b6:18:2c:d8:16:b6:18:16:b6:18  user@p570
$

cat /home/user/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAuZxlEWJjustrSmibL7PybZK8rvvDJJ4n+9n9BNU58otIw61gaJCFRwkzsJjjsmCFx0bjpSEKetSl8L0ooIRkoKkbnK0BYfwDvWlVuwt3I6ylcLx2V2EepuH+1vPmf0JOmnAWYkqf8kn0AE10JQZtK= user@p570




(2) 修改sftp server端的authorized_keys
  放在該user的$HOME/.ssh/authorized_keys(如本例帳號為testsftp)
  這也意味著會認sftp server登入的帳號喔~用別的帳號登入就抓不到了
  下面的例子,我是自己把 authorized_keys 抓到client端,自行修改
  當然正規作法應該是把key給sftp server端的系統管理員,請他們加

$ cd /home/user
$ sftp testsftp@10.11.11.11
Connecting to 10.11.11.11 ...

 Welcome to 10.11.11.11

Password:
sftp> cd .ssh
sftp> ls
.                ..               authorized_keys
sftp> mget authorized_keys
Fetching /.ssh/authorized_keys to authorized_keys
sftp> bye
$ ls
authorized_keys


     用vi(或其它你愛的文書編輯器)把剛剛產生的RSA key (路徑:/home/user/.ssh/id_rsa.pub)
  複製到authorized_keys的最下面並且要記得換行
  authorized_keys檔案裡面如果有別台server的key,請不要刪除,不然會害別人無法登入XD
  編輯完再cat看看,驗證一下

$
$ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAuZxlEWJjustrSmibL7PybZK8rvvDJJ4n+9n9BNU58otIw61gaJCFRwkzsJjjsmCFx0bjpSEKetSl8L0ooIRkoKkbnK0BYfwDvWlVuwt3I6ylcLx2V2EepuH+1vPmf0JOmnAWYkqf8kn0AE10JQZtK= user@p570


(3) 將編輯完成的authorized_keys上傳至sftp server


$ sftp testsftp@10.11.11.11
Connecting to  10.11.11.11 ...

 Welcome to 10.11.11.11

Password:          //未上傳key之前都要輸入密碼
                                     
sftp> cd .ssh
sftp> ls
.                ..               authorized_keys

sftp> mput authorized_keys
Uploading authorized_keys to /.ssh/authorized_keys
Uploading authorized_keys to /.ssh/authorized_keys
sftp>
sftp> ls -l
drwx------    0 22002    2000           96 May 11 09:33 .
drwxr-xr-x    0 22002    0            8192 Jul 30 17:09 ..
-rw-r-----    0 22002    2000          664 Aug 27 17:18 authorized_keys
sftp> bye
$

(4) 最後測試一下是否不需密碼就能連

root@p570/.ssh>sftp testsftp@10.11.11.11
Connecting to  10.11.11.11 ...


 Welcome to 10.11.11.11

sftp>                          //直接出現sftp>提示,不用密碼
sftp> bye
$



後記:

這篇看起來好像很長,其實實作起來很簡單

我這菜鳥遇到的困難是在把sftp指令寫成shell script,並寫到crontab排程
請參考
《如何在AIX作業系統排程crontab中執行sftp指令 (以RSA key認證時)》
http://n9tech.blogspot.tw/2012/10/aixcrontabsftp-rsa-key.html