由于服务器过多,每次登录输入密码显得就很繁琐, 于是就上网看了许多教程,自己也写一个教程 来加深记忆,
首先我的需求是 我们有一台公网服务器 需要连接其他 vpc专有网络服务器(因为vpc网络不能直接访问)所以每次都要通过一台经典网络服务器来跳转.废话不多说开始流程
1 经典网络服务器A 需要连接 vpc 服务器B
首先我们需要在 A服务器生成 秘钥 执行命令 :ssh-keygen 或者 ssh-keygen -t -rsa 密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥
效果
1在 A 执行 ssh-keygen 后需要 按下三次回车键,最后提示 生成秘钥的文件目录 需要记住 我的服务器在 /root/.ssh 目录
切换到 /root/.ssh目录后 看到以下
这里可以看到 我们需要的就是这个 id_rsa.pub 公钥文件 我们需要把这个文件的内容 追加到 服务器B(也就是需要免密连接的服务器) 的 /roo/.ssh/authorized_keys 文件中去 这样就可以 从 服务器A ssh hostname到 服务器B了
具体实现方法 (1 和2 都可以 建议1):
1 文件追加方式 在服务器A通过 scp id_rsa.pub root@hostname:/root/.ssh/id_ras.pub_copy 把文件复制到B服务器 并重命名为id_ras.pub_copy 在服务器B 通过 cat id_ras.pub_copy >> authorized_keys 命令把内容追加到authorized_keys 文件中去
2 在服务器A 找到id_rsa.pub 通过 vim id_rsa.pub 命令 打开文件 然后复制内容 切换到服务器B然后找到 authorized_keys 文件然后把刚刚复制的内容 粘贴进去 保存
然后在服务器A 通过 ssh 服务器B 就可以直接登录了 无需输入密码 注:网上说服务器B的 权限必须需要600 没有测试 我用的 755也是可以的
2 通过别名免密登录:
完成第一步之后 我们可以通过 ssh 加地址例(ssh 10.68.0.23) 可以直接跳转 但是 地址太多不好记 我们有时候需要起别名来记住它 具体实现步骤
进入服务器A 找到目录etc/hosts 编辑 在最下面追加
例 10.35.24.12 test1
然后保存 然后在用 ssh test1 就可以跳转到 10.35.24.12 如果你也设置了免密那就可以直接免密跳转了
写的不好请原谅,哪里错误请指出 其实也是为了给自己加深记忆 能帮到别人更好 谢谢!