使用 ssh 密鑰進(jìn)行遠(yuǎn)程登錄

云服務(wù)商 青云 提供的服務(wù)和編寫的 使用 SSH 密鑰遠(yuǎn)程登錄訪問主機(jī) 值得參考。

Linux 環(huán)境


CentOS 源于 Red Hat Enterprise Linux(RHEL)诡右,了解 RHEL 6: OpenSSH安岂,RHEL 7: OpenSSH

  • chmod 700 /path/to/

  • chmod 600 /path/to/kp-1234abcd
    // 將私鑰文件設(shè)置為只有自己可讀寫。ssh 會(huì)檢查這個(gè)訪問權(quán)限是否合理帆吻,如果別人可訪問域那,則會(huì)拒絕或者忽略該私鑰文件。

  • ssh -i /path/to/kp-1234abcd [user@]hostname
    // -i 指明 identity_file猜煮。無參運(yùn)行 ssh 可看幫助次员。

  • ssh [user@]hostname
    // 如果你已經(jīng)配置過 ~/.ssh/config,則看一下這個(gè)配置文件王带,ssh 使用會(huì)更簡(jiǎn)單淑蔚。
    參閱:/etc/ssh/ssh_config,man ssh_config

  • Using the SSH Config File愕撰,這篇講得很清晰刹衫。

# ~/.ssh/config 文件示例
# Host 參數(shù)標(biāo)明以下內(nèi)容僅適用于訪問 236 主機(jī)時(shí)適用,Host 參數(shù)本身只是一個(gè)入口字符串搞挣,比如:·`ssh 236` 就表示你使用 236 這個(gè) Host 的配置带迟。
Host 236
  HostName 192.168.99.236
  User git
  Port 22
  IdentityFile ~/.ssh/rsa-michael-236
Host 3root
  HostName 192.168.99.3
  User root
  Port 22
  IdentityFile ~/.ssh/rsa-3root-michael
# activehacker account
Host github-activehacker
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_activehacker
# jexchan account
Host github-jexchan
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_jexchan

使用時(shí):git clone git@github-jexchan:jexchan/xtry.git,其中 git@github-jexchan 指明用戶和主機(jī)蝇摸,github-jexchan 就是 Host 的值婶肩,因?yàn)樵?config 里面配置了 User git办陷,在 git clone 時(shí)可以不再指定 git@ 了,即 git clone github-jexchan:jexchan/xtry.git律歼。端口默認(rèn)就是 22民镜。

  • GIT_SSH_COMMAND 方法 @ How to tell git which private key to use?
    GIT_SSH_COMMAND="ssh -i ~/.ssh/rsa-michael-gitolite-3 -F /dev/null" git clone michael@192.168.99.3:gitolite-admin.git了解 gitolite险毁;

  • GitHub Clone with SSH 的默認(rèn)樣式:git@github.com:jexchan/xtry.git制圈,就用默認(rèn)即可,通用挺好畔况;

Host github.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/github_brahmsjia

Mac 環(huán)境


在 Terminal 下參考 Linux 方法吵瞻。
通常下載的文件放在 ~/Downloads/目錄下葛菇。

Windows 環(huán)境


Git Bash 方法

如果你安裝過 git for windows,想必熟悉 Git Bash橡羞,這個(gè)環(huán)境和 *nix 風(fēng)格保持一致眯停,可以參考 Linux 方法。

Xshell 方法

Create a New Session
Xshell-Create a New Session Properties-Connection.png
Xshell - Authentication - Method 選擇 Public Key
Xshell-New Session Properties-Authentication
Xshell - 導(dǎo)入私鑰文件
User Keys 導(dǎo)入私鑰文件.png
Terminal Encoding:Unicode (UTF-8)

設(shè)置 UTF-8 以正常顯示中文卿泽。

設(shè)置遠(yuǎn)程主機(jī)的編碼 Encoding 為 UTF-8
文件 -> 屬性
Properties-Terminal Encoding
Appearance Font
Appearance Font Name&Size
ssh user@hostname

在界面上配置好后莺债,在 Xshell 命令行下:
Xshell:> ssh user@hostname 即可。注意:Xshell 下的 ssh 功能比較弱签夭。

關(guān)于密鑰和 authorized_keys 文件

  • 以下的內(nèi)容由你的服務(wù)器管理員為你做好配置齐邦;
  • SSH 密鑰對(duì)

云主機(jī)在生成 SSH 公鑰/私鑰密鑰對(duì)時(shí),會(huì)要求你立刻下載其私鑰覆致,并保管好私鑰侄旬,云服務(wù)商是不保存你的私鑰的,只有公鑰(public key)在云主機(jī)上煌妈。你在使用 SSH 時(shí)用到的 identity file 就是私鑰(private key)文件儡羔。
使用 ssh-keygen 命令也可以自己生成。

  • ssh-keygen 命令
    密鑰對(duì)可通過 ssh-keygen -t rsa -C 'comment' -f filename-of-key-file 生成璧诵。該命令通常在 /usr/bin 下汰蜘。
    生成 2 個(gè)文件:filename-of-key-file(私鑰) 和 filename-of-key-file.pub(公鑰)。
    不指定 -f 參數(shù)之宿,則默認(rèn)存到 ~/.ssh/下族操,生成 id_rsa 和 id_rsa.pub 兩個(gè)文件。
    不指定 -C 參數(shù),則 comment 內(nèi)容默認(rèn)為 user@hostname色难。我習(xí)慣指定 -C 參數(shù)值和密鑰文件名一致泼舱,比如:rsa-hostip-usrrsa-3git-michael枷莉;

    See ssh-keygen(1) for more information.**

    Users generate SSH keys locally and upload their public key to the server before being able to interact with it.

  • ~/.ssh/authorized_keys
    公鑰文件存放在 ~/.ssh/authorized_keys 文件中娇昙,一行一個(gè)。凡持有和其中任一公鑰配對(duì)的私鑰的用戶都可以訪問笤妙。

chmod -R 700 .ssh/ 冒掌;注意權(quán)限!
chmod 600 .ssh/authorized_keys 蹲盘;注意權(quán)限股毫!

Lists the public keys (DSA/ECDSA/RSA) that can be used for logging in as this user. The format of this file is described above. The content of the file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others.

If this file, the ~/.ssh directory, or the user's home directory are writable by other users, then the file could be modified or replaced by unauthorized users.  In this case, sshd will not allow it to be used unless the StrictModes option has been set to “no”.
  • gitserver 上 git 用戶 authorized_keys 文件訪問權(quán)限問題
    如果 authorized_keys 文件、HOME/.ssh 目錄 或HOME 目錄讓本用戶擁有者之外的用戶有寫權(quán)限召衔,那么 sshd 就會(huì)拒絕使用 ~/.ssh/authorized_keys 文件中的 key 來進(jìn)行認(rèn)證铃诬。

    可以通過更多了解 sshd 命令,來了解對(duì) authorized_keys 文件的要求薄嫡。

    Git on the Server - Setting Up the Server 上也有相關(guān)內(nèi)容的描述氧急。

  • Xshell 登錄時(shí)出現(xiàn):The selected user key is not registered in the remote host. Try again.
    說明 authorized_keys 文件可能因某種原因被破壞,查看一下毫深,把公鑰正確填入即可,也有可能你的用戶名(user name)填錯(cuò)了毒姨。

  • 相關(guān)文件
    /etc/ssh/ssh_config 哑蔫;the ssh client system-wide configuration file.
    /etc/ssh/sshd_config ;the sshd server system-wide configuration file. # StrictModes 參數(shù)設(shè)置弧呐。
    ~/.ssh/config ; user-specific file.

    **See ssh_config(5) for more information. **

  • 上述文件訪問權(quán)限過寬等原因可能導(dǎo)致以下現(xiàn)象
    git clone 時(shí)報(bào)告:Permission denied (publickey) ; 說明 publickey 有問題闸迷。

git clone git@192.168.99.236:/home/git/wanpinghui/wphdoc.git
Cloning into 'wphdoc'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

公鑰私鑰示例

公鑰

公鑰文件內(nèi)容示例:ssh-rsa AAAAB3NzaC1yc2E...W6xHD comment
其中:通過 ssh-keygen 命令 -C 參數(shù)可以指定 comment 內(nèi)容。

私鑰
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAxm+gAzG1HtQl27GBdpOGBJu9MPuTIT3Z/Wp8SlOKiCzhJhTV
eVOwP/kG4wlIn4/p5QIMs3Fyf9itO9YEsRI2jtIKFeBldtmNAGTWRkAr2ZHuw1bX
...
CqsCgYBwgLBNyGRguDiWq2Dt+yqmtNF9NqadCPoUiObhnRrhEPGURF0SfZt+xcCv
y2vQmlg8an3aMi+LiIsex+m4Ty7opdHoBlmImlySxmWMQ+PHT8V5xqe8/NYQ4B3A
V0wqjVbl6vM+9DM+mch7gIS8OV5k4ViOPvs7CjdjULJ12MK68g==
-----END RSA PRIVATE KEY-----

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俘枫,一起剝皮案震驚了整個(gè)濱河市腥沽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鸠蚪,老刑警劉巖今阳,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異茅信,居然都是意外死亡盾舌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門蘸鲸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妖谴,“玉大人,你說我怎么就攤上這事酌摇∠ゾ耍” “怎么了嗡载?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)仍稀。 經(jīng)常有香客問我洼滚,道長(zhǎng),這世上最難降的妖魔是什么琳轿? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任判沟,我火速辦了婚禮,結(jié)果婚禮上崭篡,老公的妹妹穿的比我還像新娘挪哄。我一直安慰自己,他們只是感情好琉闪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布迹炼。 她就那樣靜靜地躺著,像睡著了一般颠毙。 火紅的嫁衣襯著肌膚如雪斯入。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天蛀蜜,我揣著相機(jī)與錄音刻两,去河邊找鬼。 笑死滴某,一個(gè)胖子當(dāng)著我的面吹牛磅摹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播霎奢,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼户誓,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了幕侠?” 一聲冷哼從身側(cè)響起帝美,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晤硕,沒想到半個(gè)月后悼潭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窗骑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年女责,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片创译。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抵知,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刷喜,我是刑警寧澤残制,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站掖疮,受9級(jí)特大地震影響初茶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浊闪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一恼布、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搁宾,春花似錦折汞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至翩腐,卻和暖如春鸟款,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背茂卦。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工何什, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人等龙。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓富俄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親而咆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理幕袱,服務(wù)發(fā)現(xiàn)暴备,斷路器,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • SSH全稱Secure SHell们豌,顧名思義就是非常安全的shell的意思涯捻,SSH協(xié)議是IETF(Internet...
    StarShift閱讀 2,523評(píng)論 0 7
  • SSH(Secure Shell)協(xié)議為遠(yuǎn)程登錄或其它網(wǎng)絡(luò)服務(wù)(如:sftp障癌、scp)提供安全保障的一種協(xié)議。它設(shè)...
    CHUANHAI閱讀 5,513評(píng)論 0 0
  • SSH 為 Secure Shell 的縮寫辩尊,由 IETF 的網(wǎng)絡(luò)小組(Network Working Group...
    shuff1e閱讀 1,768評(píng)論 1 11
  • 我站在十八歲的鬢角 公子燁 2015-03-20 謹(jǐn)以此文涛浙,紀(jì)念逝去的時(shí)光,所有的快樂成為回憶,痛苦成為成長(zhǎng)轿亮。 -...
    YuHua1996閱讀 308評(píng)論 0 1