用ssh-keygen創(chuàng)建公鑰(如果之前已經(jīng)生成過了,忽略這一步)
$ ssh-keygen -t rsa -P ''
# -P表示密碼,-P '' 就表示空密碼,也可以不用-P,這樣要敲3次回車,-P就一次
公鑰生成后,可以在~/.ssh下查看id_rsa是生成的私鑰(我是不會告訴你私鑰是不能輕易告訴別人的),id_rsa.pub是生成的公鑰,
公鑰生成好后,要把公鑰拷貝到遠(yuǎn)程服務(wù)器上
# 這里以sandbox為例
# 先把本地生成的公鑰上傳到sandbox上,lhs_id.pub是自己取得名字
$ scp ~/.ssh/id_rsa.pub isuwang@*.*.*.*:lhs_id.pub
此時需要先手動ssh到sandbox上(老規(guī)矩,先 ssh isuwang@...,然后輸入密碼),在~目錄下,可以看到剛才上傳的公鑰文件lhs_id.pub
接著進(jìn)入~/.ssh目錄,目錄下會有一個authorized_keys的文件
如果你是第一個吃螃蟹的人,可能目錄下還沒有這個文件,那需要創(chuàng)建該文件,并設(shè)置訪問權(quán)限:
$ touch authorized_keys
$ chmod 600 authorized_keys
然后把lhs_id.pub的內(nèi)容 追加 到 authorized_keys。注意,最好先備份一下authorized_keys,萬一小手一抖操作錯了,把別人上傳的公鑰也搞沒了的話,可不是人人都承擔(dān)得起后果。備份:$ cp -f authorized_keys ../authorized_keys_bk
cat ~/lhs_id.pub >> ~/.ssh/authorized_keys
至此,接下來就是見證奇跡的時刻了?;氐侥惚镜氐慕K端,$ ssh isuwang@...,然后回車,然后就沒有然后了......
如果還是覺得要記住這個該死的ip還是有些艱難,可以設(shè)置一個別名
$ alias sshsandbox='ssh isuwang@*.*.*.*'
從此以后,遠(yuǎn)程到sandbox4就只需要:
$ sshsandbox4
但是?。?!設(shè)置的別名僅在當(dāng)前終端有效。當(dāng)然,可以設(shè)置永久別名,不同平臺方法略有不用,就自行百度吧。
更高級的方法:
# 在~/.ssh目錄下新建一個名為config的文件(如果不存在的話)
$ vi config
## 然后插入以下內(nèi)容
Host sandbox
User isuwang # 登錄到sandbox的用戶名
HostName *.*.*.* # 這里寫sandbox的ip或域名
Host weihu
User weihu
HostName *.*.*.* # 寫維護(hù)機的ip或域名
## 如有更多,自行繼續(xù)按照以上格式寫入... #號以及后面的內(nèi)容保存前請先刪掉
保存并退出vi,然后要遠(yuǎn)程到sandbox:
$ ssh sandbox4
要遠(yuǎn)程到weihu機:
$ ssh weihu
SSH穿越跳板機
你若少輸一次密碼,便是晴天,更何況是兩次。
這里以sandbox1為例。要遠(yuǎn)程到sandbox1,首先你得先ssh到跳板機,然后在從跳板機ssh到sandbox1。
還記得~/.ssh下的config嗎? 沒錯,是它,是它,就是它。
vi config
# weihu 如果之前已經(jīng)有weihu機的配置,這里就不需要重復(fù)配置了
Host sandbox1
User weihu
HostName *.*.*.*
# 配置sandbox1
Host sandbox1
User isuwang
HostName *.*.*.* # 此處應(yīng)是sandbox1的ip或域名
ProxyCommand ssh -W %h:%p sandbox