美文网首页
ssh免登陆

ssh免登陆

作者: 傑仔 | 来源:发表于2018-11-09 01:24 被阅读0次

用ssh-keygen创建公钥(如果之前已经生成过了,忽略这一步)

$ ssh-keygen -t rsa -P '' 
# -P表示密码,-P '' 就表示空密码,也可以不用-P,这样要敲3次回车,-P就一次

公钥生成后,可以在~/.ssh下查看id_rsa是生成的私钥(我是不会告诉你私钥是不能轻易告诉别人的),id_rsa.pub是生成的公钥,
公钥生成好后,要把公钥拷贝到远程服务器上

# 这里以sandbox为例
# 先把本地生成的公钥上传到sandbox上,lhs_id.pub是自己取得名字
$ scp ~/.ssh/id_rsa.pub isuwang@*.*.*.*:lhs_id.pub

此时需要先手动ssh到sandbox上(老规矩,先 ssh isuwang@...,然后输入密码),在~目录下,可以看到刚才上传的公钥文件lhs_id.pub
接着进入~/.ssh目录,目录下会有一个authorized_keys的文件

如果你是第一个吃螃蟹的人,可能目录下还没有这个文件,那需要创建该文件,并设置访问权限:
$ touch authorized_keys
$ chmod 600 authorized_keys

然后把lhs_id.pub的内容 追加 到 authorized_keys。注意,最好先备份一下authorized_keys,万一小手一抖操作错了,把别人上传的公钥也搞没了的话,可不是人人都承担得起后果。备份:$ cp -f authorized_keys ../authorized_keys_bk

cat ~/lhs_id.pub >> ~/.ssh/authorized_keys

至此,接下来就是见证奇迹的时刻了。回到你本地的终端,$ ssh isuwang@...,然后回车,然后就没有然后了......
如果还是觉得要记住这个该死的ip还是有些艰难,可以设置一个别名

$ alias sshsandbox='ssh isuwang@*.*.*.*'

从此以后,远程到sandbox4就只需要:

$ sshsandbox4

但是!!!设置的别名仅在当前终端有效。当然,可以设置永久别名,不同平台方法略有不用,就自行百度吧。

更高级的方法:

# 在~/.ssh目录下新建一个名为config的文件(如果不存在的话)
$ vi config
## 然后插入以下内容
Host sandbox
    User isuwang      # 登录到sandbox的用户名
    HostName *.*.*.*  # 这里写sandbox的ip或域名
Host weihu
    User weihu
    HostName *.*.*.*  # 写维护机的ip或域名
## 如有更多,自行继续按照以上格式写入... #号以及后面的内容保存前请先删掉

保存并退出vi,然后要远程到sandbox:

$ ssh sandbox4

要远程到weihu机:

$ ssh weihu

SSH穿越跳板机

你若少输一次密码,便是晴天,更何况是两次。

这里以sandbox1为例。要远程到sandbox1,首先你得先ssh到跳板机,然后在从跳板机ssh到sandbox1。

还记得~/.ssh下的config吗? 没错,是它,是它,就是它。

vi config
# weihu 如果之前已经有weihu机的配置,这里就不需要重复配置了
Host sandbox1
        User weihu
        HostName *.*.*.*  
# 配置sandbox1        
Host sandbox1
    User isuwang
    HostName *.*.*.*   # 此处应是sandbox1的ip或域名
    ProxyCommand ssh -W %h:%p sandbox

参考:https://www.zybuluo.com/Wahson/note/449524

相关文章

网友评论

      本文标题:ssh免登陆

      本文链接:https://www.haomeiwen.com/subject/saxnxqtx.html