SSH 通过公钥连接云服务器

开源布道者
• 阅读 5132

通常我们连接远程服务器(linux)windows下通过putty或xshell等工具远程连接。linux下可以直接通过ssh命令连接。

其实这两者都是一致的,都是通过ssh协议进行传输。

如果我们的windows没有安装putty等工具,但是有git-bash的话也可以直接通过ssh来连接。通过以下命令:

ssh root@ip/主机名/域名/

接下来会叫你输入密码,成功输入后即可连接成功。

但是这样每一次都要输入面码,我们可以编写一个shell脚本,类似于:conn_vps.sh这样的文件

首先,打开git-bash(桌面上右击,选择Git Bash Here。) $ 为gitbash的命令提示符, # 为注释,非命令不必输入。下同

$ cd ~      # 进入到用户家目录
$ mkdir sh  # 新建一个sh目录,用于存放shell脚本。
$ cd sh     # 以上都是我的个人习惯。不必和我一样

然后新建该文件

$ vim conn_vps.sh

进入vim模式,按i键即可编辑,输入以下内容:

#!/bin/bash             # 这一行必须要写,非注释
ssh root@ip/主机名/域名  # 输入你自己的远程主机ip等。

此时按,ESC键,再按:wq保存退出。

现在即可运行该脚本:

$ ./conn_vps.sh
$ sh conn_vps.sh    # 这两条命令,任意一条都可以运行

当然如果你在本身就在linux环境下,需要赋予执行权限,像下面这样。和我一样在git-bash中创建的,不需要这一步,本身就有执行权限。

$ chmod 755 conn_vps.sh

然后再执行,然后你会发现依然会输入密码,这是当然的,我们刚才只不过是把刚才的命令简单的脚本了一下。

接下来SSH的密钥分发。

查看是否有密钥

$ ll  ~/.shh/  # 查看是否有id.rsa,和id.rsa.pub两个文件。

如果没有的话,可以生成一个。有的话跳过这一步

$ ssh-keygen -t rsa -C "jan.mail@foxmail.com"   #这部其实可以不加邮箱参数,但是git配置github连接需要。
                                                #所以最好一次性做了,用一样的密钥。邮箱换成你自己的邮箱。

连续三次回车,如果不设置密码的话。

接下来,上传公钥到远程服务器

$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@远程服务器的ip/主机名/域名

然后运行conn_vps.sh。第一次还是需要输入一遍密码,如果出现以下提示符即算成功。

Now try logging into the machine, with:   "ssh 'root@你的ip'"
and check to make sure that only the key(s) you wanted were added.

这样就算成功了,在运行conn_vps.sh,即可连接上你的服务器。

如何你要多个云服务器。root密码可以弄得复杂些,然后通过这样的方式连接云服务器。

yeah!大功告成

嗯,既然我们可以登录上去了,那我们去看看远程机器上(linux)的情况

输入ll .ssh/

[root@ten ~]# ll .ssh/
total 4
-rw------- 1 root root 401 Sep 10 20:47 authorized_keys

如果你的远程机器上没有生成ssh-keygen,就会只有一个文件,authorized_keys翻译过来就是认证的密钥。

而这个认证的密钥就是前面那条命令的的 ~/.ssh/id_rsa.pub 的内容。
所以这条命令 ssh-copy-id -i ~/.ssh/id_rsa.pub root@远程服务器的ip/主机名/域名就是把id_rsa.pub的内容粘贴到authorized_keys中。

如果另一台客户端也想连接到这台远程服务器。可以用同样的命令来一遍,也可以直接用cat查看id_rsa.pub,再在服务端用vim打开authorized_keys文件。
粘贴进去,之前的不要删除,换一行即可。

当然如果你不想用ssh-copy-id -i命令,那你就得记住authorized_keys这个单词~

原文在我的博客SSH通过公钥连接云服务器

点赞
收藏
评论区
推荐文章
小尉迟 小尉迟
2年前
SecureCRT mac使用详细教程 附SecureCRT资源
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件,优点是可以一次创建多个TabPage,连接多台远程主机。这里使用的是Mac版本的不过不影响,在Window上都是一样
雷厉风行 雷厉风行
2年前
「Termius for Mac」—— 简单易用的SSH终端工具,完美激活版
TermiusforMac是一款跨平台的远程终端工具,可以帮助开发人员通过SSH、Telnet和Mosh等协议轻松管理和连接远程服务器和设备。
Easter79 Easter79
3年前
ssh的应用和vnc连接桌面
一、什么是ssh?1、SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。SSH之所以能够保证安全,原因在于它采用了公钥加密。2、SSH是传输层和应用层上的安全协议,它只能通过加密连接双方会话
Stella981 Stella981
3年前
Git使用总结
生成密钥1.打开GitBash,运行  \_sshkeygen  \_2.密钥生成空间\_~/.ssh/id\_rsa  \_(C:/User/.ssh)3.输入密码(不输入增直接回车跳过)4._~/.ssh/id\_rsa.pub_ (公钥), _id\_rsa_ (私钥)下载代码到本地
Wesley13 Wesley13
3年前
ubuntu安装openssh
ubuntu自带的有opensshclient,所以可以通过sshusername@host来远程连接linux可是要想通过ssh被连接,ubuntu系统需要有opensshserver,可以通过pse|grepssh来查看,如果没有显示sshd则说明没有安装opensshserver可通过
Wesley13 Wesley13
3年前
6、SSH远程管理服务实战
1.SSH基本概述SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全。那SSH服务主要功能有哪些呢?1.提供远程连接服务器的服务、2.对传输的数据进行加密那么除了SSH协议能提供远程连接服务,Telnet也能提供远程连接服务,那么分别的区别是什么呢?ssh服务会对传输数据
Stella981 Stella981
3年前
Linux应急响应(一):SSH暴力破解
0x00前言SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包含字母等,容易被攻击者破解,一旦被攻击者获取,可用来直接登录系统,控制服务器所有权限。0x01应急场景某天,网站
小尉迟 小尉迟
2年前
Mac苹果SSH工具:SecureCRT 使用详细教程
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件,优点是可以一次创建多个TabPage,连接多台远程主机。这里使用的是Mac版本的不过不影响,在Window上都是一样
绣鸾 绣鸾
1年前
远程服务器访问和管理工具Termius 8「Mac」
是一款远程访问和管理工具,旨在帮助用户轻松地远程连接到各种服务器和设备。它适用于多种操作系统,包括Windows、macOS、Linux和移动设备。该软件提供了一个直观的界面,使用户可以通过SSH、Telnet和Mosh等协议连接到远程设备。它还支持SFT
燕青 燕青
1年前
Macos专业的ssh客户端:Termius for Mac中文版
是一款针对Mac系统开发的SSH客户端应用程序。它提供了简单易用的界面和全面的功能,可以让用户轻松地管理和连接远程计算机。TermiusforMac主要特点包括:支持SSH协议:TermiusforMac支持SSH协议,可以轻松地连接到远程计算机、服务器或
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(