导读 通常我们连接远程服务器(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如何通过公钥连接云服务器的更多相关文章

  1. mac 远程连接 云服务器

    之前mac 命令行连接云端服务器,一直失败,今天问题突然间解决了,如果遇到类似的问题,按照方法解决不了,可以在下面留言,共同探讨. 首先,在云端先判断一下云端服务器是否安装了    ssh服务器:op ...

  2. SSH 指定密钥,连接远程服务器。

    ssh -i /root/.ssh/private.pem user@192.168.1.100 -p 7744 如上, /root/.ssh/private.pem :密钥文件路径user@192. ...

  3. 连接云服务器中MySql数据库遇到的问题

    使用的免费的云服务器,上面只能下载MySql数据库,不过当云数据库使用绰绰有余了,也就放一些测试数据而已 而且上面只可以部署php项目,.netcore项目部署实现比较麻烦 问题如下: 下载了navi ...

  4. 【redis】Java连接云服务器redis之JedisConnectionException的异常问题

    代码很简单: public static void main(String[] args) { Jedis jedis = new Jedis("116.85.10.216",63 ...

  5. 解决连接云服务器的redis失败

    在本地连接服务器redis的时候,发现连接失败,这是因为服务器上的redis开启保护模式运行,该模式下是无法进行远程连接的.只需要修改redis目录下的redis.conf文件,找到 protecte ...

  6. 踩坑系列《十二》解决连接云服务器的redis失败

    在本地连接服务器redis的时候,发现连接失败,这是因为服务器上的redis开启保护模式运行,该模式下是无法进行远程连接的.只需要修改redis目录下的redis.conf文件,找到 protecte ...

  7. 使用Navicat连接阿里云服务器上的MySQL数据库--转

    手把手教你如何正确连接阿里云服务器上的数据库: 1.首先打开Navicat,文件>新建连接>MySQL连接,其他的如一图所示. 2.因为是连接服务器上的MySQL,所以我们使用SSH连接, ...

  8. 搭建自己的个人web项目指南 ---(一)服务器购买与基础配置 | windows连接到自己的云服务器

    (一)服务器购买与基础配置 | windows连接到自己的云服务器 一.服务器选购指南 厂商选择 目前市面上提供服务器租用的厂商很多,比较知名的还是阿里云和腾讯云,两家的稳定性都非常不错,小伙伴们可以 ...

  9. 云服务器远程连接mysql数据库

    首先需要在云服务器上,下载安装好mysql与Navicat. mysql下载好以后,打开云端的开始,找到mysql的命令窗,进入输入自己的mysql密码,稍等片刻进入mysql数据库 进入之后输入下列 ...

随机推荐

  1. Setting up Django and your web server with uWSGI and nginx

    https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html Setting up Django and your we ...

  2. BZOJ3557: [Ctsc2014]随机数

    orz神犇们 clj(pw CCfCtsC2014) zyh cjj pyx vfk 吐槽一句对拍的时候发现这几份代码输出不一样. 每个数看成模2意义下的多项式: \[M_k\equiv x^kM_0 ...

  3. 《Java疯狂讲义》(第3版)学习笔记 1 - 如何学习Java

    1.Java是一种面向对象语言,不要简单当做脚本使用.从基础学起,不要从Spring.J2EE.Hibernate和EJB开始学. 2.不要浮躁,应该扎扎实实先学好Java语言,然后按Java本身的学 ...

  4. Eclipse自动补全+常用快捷键

    一,Eclipse自动补全增强方法 在Eclipse中,从Window -> preferences -> Java -> Editor -> Content assist - ...

  5. asp.net与Matlab类型转换(待补全)

    上上篇的博客已经提到如何配置环境,即如何在asp.net中调用matlab生成的dll文件.这篇博客打算做个笔记,那就是matlab和C#数据类型如何转换.随着需求的增加,我会不断增加新的类型转换. ...

  6. centos nc命令安装

    yum install nc.x86_64 nc命令的参数 参数 作用-i 设置数据报传送时间间隔-l 以服务器方式运行-k 重复接收并处理某个端口上的所有连接,必须与-l选项一起使用-n 使用ip地 ...

  7. Foundation框架—— 数组 (NSArray NSMutableArray )

    基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4 ...

  8. Java——Swing

  9. CodeForces 716B Complete the Word

    题目链接:http://codeforces.com/problemset/problem/716/B 题目大意: 给出一个字符串,判断其是否存在一个子串(满足:包含26个英文字母且不重复,字串中有‘ ...

  10. 设计模式学习——观察者模式(Observer Pattern)

    0. 前言 观察者模式在许多地方都能够用到,特别是作为MVC模式的一部分,在MVC中,模型(M):存放数据,视图(V):显示数据.当模型中的数据发生改变时,视图会得到通知,这是典型的观察者模式. 1. ...