RSS訂閱本站最新文章:SUBSCRIBE TO RSS FEED
加入我的最愛:ADD FAVORITE
最佳瀏覽1024*768以上,部分字體使用微軟正黑體
  輕鬆。簡單。人生/Linux學習  2009/11/23 08:01 by 哇哇
ssh-copy-id.gif
ssh-copy-id是ssh client套件內一個預設的指令,簡單的來說他只是一個script,當你在本機電腦已經有產生了RSA or DSA authentication,可以透過ssh-copy-id的指令將認證傳送到遠端主機。

如何建立RSA or DSA authentication?
$ ssh-keygen -t dsa (ssh-keygen -t rsa)
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
--:--:--:--:--:--:--:--:--:--:--:--:--:--:--:-- root@localhost

id_dsa.pub或id_rsa.pub預設將會處出在 使用者家目錄/.ssh/,若要與遠端主機建立認證,則需要將此檔案內容附加到遠端主機 使用者加目錄/.ssh/authorized_keys

RSA與DSA的差異
ssh-keygen can create RSA keys for use by SSH protocol version 1 and RSA or DSA keys for use by SSH protocol version 2
簡單來說,若您只使用SSH protocol version 2,建議使用DSA來建立authentication。

ssh-copy-id的運用
$ ssh-copy-id.orig -i ~/.ssh/id_dsa.pub wawa@remotehost

wawa@remotehost's password: (需要輸入一次密碼)
Now try logging into the machine, with "ssh 'wawa@remotehost'", and check in:

  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

簡單的執行 ssh-copy-id.orig -i 認證檔案 帳號@主機 就可以完成認證,之後就可以直接不敲密碼就ssh連線到遠端主機

基本上對外服務的主機,ssh listen port都會改掉預設的22 port,如此一來可以減少主機被入侵的機會,更改ssh listen port是最基本的第一道防線,請將設定檔內的 Port 22 進行更改,並且重新啟動ssh的服務。

但是當您改掉ssh listen port之後,ssh-copy-id這個好用的指令將無法運用,這樣一來不是很可惜嗎?於是我們就可以對ssh-copy-id這個script進行一些修改,讓他可以支援指定不同的service port

更改ssh-copy-id
$ cp /usr/bin/ssh-copy-id /usr/bin/ssh-copy-id.orig
$ vi /usr/bin/ssh-copy-id
#!/bin/sh
 
# Shell script to install your identity.pub on a remote machine
# Takes the remote machine name as an argument.
# Obviously, the remote machine must accept password authentication,
# or one of the other keys in your ssh-agent, for this to work.
 
ID_FILE="${HOME}/.ssh/identity.pub"
 
while getopts ':i:p:P:h' OPTION
do
    case $OPTION in
        i)
        if [ -n "$OPTARG" ]; then
            if expr "$OPTARG" : ".*.pub" > /dev/null ; then
                ID_FILE="$OPTARG"
            else
                ID_FILE="$OPTARG.pub"
            fi
        fi
        ;;
        P|p)
            PORT=$OPTARG;
        ;;
        h)
            echo "Usage: $0 [-i [identity_file]] [user@]machine" >&2
            exit 1
        ;;
    esac;
done;
 
shift $(($OPTIND - 1))
 
if [ $# -lt 1 ] && [ x$SSH_AUTH_SOCK != x ] ; then
   GET_ID="$GET_ID ssh-add -L"
fi
 
if [ -z "`eval $GET_ID`" ] && [ -r "${ID_FILE}" ] ; then
  GET_ID="cat ${ID_FILE}"
fi
 
if [ -z "`eval $GET_ID`" ]; then
  echo "$0: ERROR: No identities found" >&2
  exit 1
fi
 
if [ -z $PORT ]; then
    PORTOPTION=""
else
    PORTOPTION="-p $PORT "
fi;
 
{ eval "$GET_ID" ; } | ssh $PORTOPTION $1 "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1
 
cat <<EOF
Now try logging into the machine, with "ssh $PORTOPTION'$1'", and check in:
 
  .ssh/authorized_keys
 
to make sure we haven't added extra keys that you weren't expecting.
 
EOF

主要是增加了port的設定進去,建議可以直接複製貼上取代即可。
以上script參考來源:http://blog.vieth.biz/2009/03/23/ssh-copy-id-with-port/

ssh-copy-id with port的運用
$ ssh-copy-id -i ~/.ssh/id_dsa.pub -p 1234 wawa@remotehost
wawa@remotehost's password: (需要輸入一次密碼)
Now try logging into the machine, with "ssh -p 1234 'wawa@remotehost'", and check in:
 
  .ssh/authorized_keys
 
to make sure we haven't added extra keys that you weren't expecting.

ssh-copy-id with port的認證就完成囉!

以前建立ssh的認證老是很麻煩,自己先讀取一下本機pub檔案的內容,之後連到遠端主機在自己貼上,有時候還會遇到目錄檔案權限的問題無法順利完成認證,認識ssh-copy-id這個指令後一切更方便了,希望對於常常管理主機的您也有幫助唷!
2009/11/23 08:01 2009/11/23 08:01
檔案寄存:teamagic,MaxCDN
http://portable.easylife.tw/trackback/1912

駐廠正妹

開關

Bloggerads

ClickForce

BlogAD

最新文章

  1. 【置頂】【大力玩】全球一動4G隨身分享器,獨樂樂不如眾樂樂!流暢的4G網路!
  2. Instant Color Picker 2.5.0.32 - 功能豐富的螢幕取色工具  (1)
  3. ProduKey v1.45 - 方便保存你的產品序號  (7)
  4. Q-Dir 4.36 - 多視窗的檔案總管  (104)
  5. 【Firefox外掛】Redirector幫您達成輕鬆轉址!特別可以用在mobile01上!  (4)
  6. 【台北西門店】花月嵐。大蒜拳骨拉麵~真是心滿意足的一餐!  (12)
  7. FastPictureViewer 1.2 - 優質的圖片瀏覽軟體  (10)
  8. 真愛零距離 Going the Distance  (2)
  9. 【台南】莉莉水果店。這應該是台南最有名氣的冰品吧~  (16)
  10. Visual Subst v1.0.6 - 讓你把目錄當成磁碟機來使用  (3)
  11. Screen2Exe 3.0 - 高壓縮算法的錄製螢幕工具  (64)
  12. 【台南】清閣水樓。來吃湯包囉!  (6)
  13. Fastcopy v2.02 - 最快的檔案拷貝工具  (69)
  14. CrystalDiskInfo 3.7.0a - 漂亮的報表顯示您的硬碟現狀  (22)
  15. 【備忘】SSH RSYNC遠端同步備份檔案,順便談網站資料備份  
  16. 【台南】正宗的唷!前體育場杏仁豆腐冰  (2)
  17. 台南肉圓的對決!武廟肉圓 v.s 福記肉圓  (4)
  18. Remote Desktop Organizer v1.4.4 - 遠端桌面管理工具  (3)
  19. WizMouse 1.0.0.9 - 不受多層視窗限制,滑鼠依然可以滾滾滾!  (8)
  20. Quicksys RegDefrag 2.9 - 優化系統登錄檔  (8)
  21. Media Player Classic HomeCinema 1.3.2210 - 比Media Player Classic更厲害的?  (53)
  22. 第十三台小徑車。LOUIS GARNEAU MVC。心動  
  23. 【台南】地球咖啡。富立時尚館  (2)
  24. 第十二台小徑車。Speed One R30。心動  (4)
  25. 第十一台小徑車。Performer ECLIPSE TI FORCE。鈦心動  
  26. 節能環保與生活紓壓的一座青山。永龍建設  (10)
  27. LPIC 3考試範圍,到底該如何準備呢?  
  28. Moo0 AudioPlayer 1.49 - 省資源的音樂播放器  (9)
  29. 【台南】帕瑪義式廚房,辣到我都下雨了!  (10)
  30. 體驗新的台南夜騎路線 - 鹿耳門聖母廟  (4)
  31. 【台北】丁家樓麵食館。麵好吃~水餃更好吃!  (4)

網站貼紙

贊助廠商

墨水特賣會,天天都超值
碳粉批發價,天天都便宜
888Boss創業加盟網
阿姆斯壯木地板系統家具 信維記帳士事務所
IT4FUN
帛琉旅遊 便宜機票 長灘島旅遊首選 招牌設計 新竹廚具
九九汽車音響影視 九九汽車音響賣場
台南日本料理吉藏