SSH 登入伺服器 提供證書登入
Mac 環境下面--------
遠端主機ip:HostIpAddress
如果沒有 key 話需要自己生成,或找同事索取.
1.生成key
如果本地有id_rsa和id_rsa.pub這兩個檔案就不要再生成一次了,否則之前已經設定好的網站就白弄了。
ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment] [-f output_keyfile]
ssh-keygen -t rsa
2.把公鑰id_rsa.pub拷到遠端主機上面去
scp /.ssh/id_rsa.pub
3.把公鑰id_rsa.pub追加到授權檔案中
cat ~/.ssh/ir.pub >> ~/.ssh/authorized_keys
如果authorized_keys不存在,則建立之 touch ~/.ssh/authorized_keys(# 注意: 必須將~/.ssh/authorized_keys的許可權改為600, 該檔案用於儲存ssh客戶端生成的公鑰,可以修改伺服器的ssh服務端配置檔案/etc/ssh/sshd_config來指定其他檔名)
mac中的檔案是/etc/sshd_config
The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
4.回到本地主機,免密碼登陸遠端主機
ssh [email protected](預設使用的是~/.ssh/id_rsa)
假如在生成金鑰公鑰對檔案時用-f指定了其他的檔名,需要使用-i來指定私鑰檔案
ssh [email protected] -i /path/to/your_id_rsa
或者在全域性配置檔案/etc/ssh_config(本地配置檔案~/.ssh/config,沒有則建立之,一定注意配置書寫格式.不然換出問題)中新增如下配置:
Host RemoteHostIpAddress
IdentityFile /path/to/your_id_rsa
方便小技巧:
1.為每個伺服器指定私鑰公鑰對檔案
通過在~/.ssh/config中配置可以實現為每個伺服器指定不同的配置檔案
Host HostIpAddress
IdentityFile /path/to/your_id_rsa
2.每次登陸時仍然要ssh [email protected],ipAddress不好記,怎麼辦?
在/etc/hosts中新增自己容易記的主機名
例如:
192.168.11.222 hackathon
這樣登入時就可以使用ssh [email protected]了。
不過要~/.ssh/config也要改一下:
Host hackathon
IdentityFile /path/to/your_id_rsa
3.指定登陸使用者
Host hackathon
IdentityFile /Users/user1/.ssh/hackathon_rsa
user root
這樣每次登陸時,就可以直接ssh hackathon了,並且是以root使用者登陸的。
4.session copy,多次登陸只輸入一次密碼
在~/.ssh/config中新增如下3行,只要在已經有一個terminal登入到aaa.bbb.com中後就可以session copy然後免密碼登陸了。
Host aaa.bbb.com
ControlMaster auto
ControlPath ~/.ssh/master-%[email protected]%h:%p
5.登陸就是執行很少的命令,不登陸能不能執行命令?
登陸一次忙活半天,登陸上去了就執行很少的命令,能不能不登陸了?
可以
ssh hackathon “your command”
例如:
[email protected]:~/.ssh$ ssh hackathon “ls /”
bin
boot
data
dev
etc
home
…
6.安裝sshpass
sudo apt-get install sshpass
安裝完成後使用sshpass允許你用 -p 引數指定明文密碼,然後直接登入遠端伺服器。例如:
sshpass -p ‘你的密碼’ ssh 使用者名稱@伺服器ip地址
用 ‘-p’ 指定了密碼後,還需要在後面跟上標準的 ssh 連線命令。
7.other錯誤處理
如果連線時出現如下的錯誤:
Agent admitted failure to sign using the key
則使用 ssh-add 指令將私鑰加進來 (根據命名不同更改 id_rsa)
ssh-add ~/.ssh/id_rsa
---------------------------------------要是別人給你的證書是 .ppk 怎麼辦 別急 !!!-------------------------------------------------------------------------
- 使用Homebrew安裝putty(homebrew是Mac下的包管理工具):
$brew install putty
同時會安裝puttygen。
- 使用puttygen從.ppk檔案產生.pem檔案:
$puttygen privatekey.ppk -O private-openssh -o privatekey.pem
注意:前面一個是大寫O,後面一個小寫o。
- 使用.pem遠端登入
¥ssh -i privatekey.pem [email protected]