View on GitHub

CrouchingTigerM.github.io

A public personal area.

linux服务器入门采坑集锦

之前在同事的怂恿下,花了很少的软妹币在腾讯云买下了自己的第一份云服务器。当时乘着新鲜感搞了个ssh免密登录,然后安装了个nodejs,然后。。。。。。新鲜感就消退了。一晃几个月就过去了。前两天又来了兴致,想要重新登上去看看我的资产,然鹅,一遍又一遍的提示:

    Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

搞得我那叫一个天昏地暗,不知所措呀。

期间在网上随便找了一篇文章,按照文章内容对着sshd_config就是一顿改。结果你猜怎么着,sshd服务一重启,密码登录和秘钥登录都不行了😭。。。(事后判断,应该是把密码登录和秘钥登录都给禁了,别问我怎么判断的,我也不知道😂),当时没辙了,没羞没臊地重装了一下服务器。只想说,作为一个学渣,我已经尽力了,奈何啥都一知半解。

重装之后,之前搞过的那两件事又得重来一次。ssh免密登录比较简单,各个云上都有提供文档,这里就不再说了。nodejs的安装其实也挺简单,这里有个简单的教程,我基本上就是按照这个来的。区别在于,我当时还不知道怎么把本地文件上传到服务器(下文具体介绍),所以nodejs下载是在服务器上通过wget命令完成的,这里有个wget命令的使用说明。当然,你也可以通过curl下载。

nodejs安装完成后,我想到的第一个问题就是怎么才能把我本地的代码同步到服务器上去?在我有限的认知里一番翻找后,似乎ftp是一种可行的方案。但是一通google之后,我放弃了。。。原因?貌似想用ftp的话还要开一堆服务,配置一堆文件什么的,想想就好烦。另外,腾讯云的文档也唯一推荐了一种方式,于是我就定就先研究一下这种方式吧。

哦,对了,这种方式是scp命令。

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,  
不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。

以上内容摘录自“scp命令详解”-扫地僧

本来看这命令用法也不复杂,想着随便按照上面的文章敲一下命令,把本地文件尝试传到服务器也就算掌握了,没–想–到!

    Permission denied (publickey,gssapi-keyex,gssapi-with-mic)。
    lost connection。

又出来了。不过,这次多了个“lost connection”。经过刚开始时的一番折磨,大概定位到问题在于服务器没有打开密码登录的选项,遂登录服务器,果断将sshd_config中的 PasswordAuthentication 设置成yes,重启sshd服务。终于,成功将本地的一个图片文件copy到远程服务器。

总结:

之所以会有这样一篇集锦是因为当我时隔几个月想要回顾一遍之前探索过的知识时,发现只是有个  
大概印象,很多具体的东西都模糊了。这样就得在重复一遍之前的探索过程,太浪费时间。

所以,总结很重要,记录下总结更重要。