使用ssh+rsa连接远程linux服务器

题记: 生命的乐趣在于折腾. !#但是#! 工欲善其事,必先利其器.

这是一篇关于菜鸟上路开始折腾linux的学习记录.
今天下午折腾了一个东西.终于折腾好了,有点小收获,于是写篇文章纪念一下.

此次折腾的起因

最近在慕课网学习linux.视频里面,老师用的是Xshell.于是我也装了个Xshell.结果就是各种坑爹啊.至于哪里坑呢, 不好描述的.但是我就是用不惯Xshell(安装版和便携版我都试过,都不好用,不建议使用).

还有一个原因就是, 在自己电脑上装虚拟机用起来真心不舒服.不舒服啊不舒服.于是我开始在google上学习, 关于各种远程连接的知识我都搜了一下.然后我发现.

我的电脑因为被我折腾的不错的原因, 使用windows下的伪bash竟然可以用ssh.啊哈哈哈.

于是我开始了我的ssh连接远程服务器之路.

使用密码登陆远程服务器

因为我在windows下模拟的bash还是能满足一些基本的命令需求的.其中就有ssh,它是安装msys自带的.

因为之前说过使用ssh协议连接远程仓库的事.

ssh是什么东西呢? 看看wikiwand条目吧.

乱入:
\$_\$ wikiwand 是我最近发现的一个可以优化wikipedia页面的网站.一开始我找到的是chrome插件.它会自动把wikipedia的页面访问跳转懂啊wikiwand.还不错.
乱入结束

然后我又搜索了一下ssh命令的具体使用方法.

乱入
哈哈又发现一个好网站linux命令大全,这世界上我们不知道的好东西太多了
乱入结束

好吧 linuxde.net在我发现一天之后挂掉了.擦! 不过介绍scp命令的使用方法的网站还是有很多的.
现在已经恢复.

一开始我曾经用过这个命令 ssh 192.243.116.234 其中192.243.116.234 是我的vps的ip地址(可以是任何一个可以连接到互联网的linux机器), 但是这样并没有什么卵用,因为ssh默认端口是22,但是我的vps打开的ssh端口是27472.

于是我使用了命令ssh -p 27472 192.243.116.234来连接我的vps.但是还是不行.因为它默认使用的账户是我现在的bash用的账户.而我在windows下的伪bash使用的账户是administrator.就是windows的账户.但是我的vps上只有root账户. 例如:

使用默认账户连接

只有在服务器上有一个与当前本地bash所使用的账户一模一样的账户,并且还知道服务器账户的密码的情况下,可以使用默认账户.

然后我加上了连接时选择的账户,用了命令ssh -p 27472 root@121.249.204.230来连接.

连接vps的root用户

哈哈这样就连接上了.

可是这样问题就来了

但是问题来了.这样子连接很蛋疼有木有? 为什么? 因为每次都要输密码!每次都要输密码!每次都要输密码.! 蛋疼的事情说三遍.

于是我想到了上次使用rsa密钥来连接github远程仓库的方法,是不是知道在远程服务器上添加上rsa的公钥就可以了?

于是我又来到了google,哈哈google真实是个好东西.

然后找到了方法. 那就是 我只需要把我电脑上的id_rsa.pub公钥copy到服务器上,并把文件名改成authorized_keys放到你需要使用rsa密钥登陆的账户的家目录下的.ssh文件夹下面就可以.

但是怎么把我电脑上的文件copy到远程服务器上呢? 我又在google搜索到了相应的命令,那就是!!scp命令.但是我不会用,于是我又来到了linux命令大全查了查scp命令的详细文档.

然后在远程服务器上确认你需要使用rsa公钥登陆的账户下面是否有.ssh文件夹.如果没有,必须创建.不然scp命令是不会自动创建文件夹的.也就是说如果你使用csp命令把一个文件放入一个不存在的文件夹.scp命令会执行失败.例如:

使用scp命令将文件copy到不存在的文件夹里面

因此,需要先使用密码登录到远程服务器上在用户家目录下创建.ssh文件夹.然后再执行scp命令.例如:

在家目录下面创建.ssh文件夹

然后再执行scp命令就可以成功了.例如:

成功上传rsa公钥文件

然后我们使用ssh命令登陆一下远程服务器试一试.例如:

成功使用rsa验证登陆服务器

其实这不是第一次使用该rsa密钥登陆服务器出现的情况,第一次登陆ssh返回的信息会多一些.例如会显示公钥的指纹什么的.但是一般没什么用.

但是问题又来了

蛋疼的事情又来了….

每次都要输入这么长的命令!!!
每次都要输入这么长的命令!!!
每次都要输入这么长的命令!!!

蛋疼的事情说三遍….

于是我不得不适用shell自带的别名alias功能了.还好我的伪bash有这个功能.不然就真的蛋疼了.

于是我用了这样一个命令alias my-vps="ssh -p 27472 root@192.243.116.234"

这样每次要连接我的vps的时候,直接在shell输入my-vps就可以了. 例如:

使用别名登陆远程服务器

哈哈,这样不就方便多了?

这一定是最后一个问题了

但是!!还是有问题!!纳尼? 为什么我关掉了shell之后再打开使用my-vps就不可以了呢?例如:

关掉shell之后再打开别名失效

这是为什么? 虽然我知道这是为什么, 但是这里就不说了.

解决办法呢? 把别名写入.bashrc啊!! 我简直太机智了!(好吧,其实会玩linux的人都知道).例如:

把别名写入.bashrc文件

这样子下来,革命终于完成了!~0~

以后终于有一个好的玩linux的方法了.啊哈哈哈!

PS:现阶段,我的vps主要用于shadowsocks服务. vps是搬瓦工的4刀一年的廉价vps.