请注意:本文适用服务器为Linux系统,CentOS/Ubuntu版本均可,其他版本未尝试,可能略有不同
服务器几乎是每个程序员都必须要接触的 通常我们远程连接服务器,一般都采用第三方提供的远程登录软件或插件 比如window系统自带的mstsc 
如果服务器为window系统,则可以使用这个工具,还是非常方便,直接打开远程桌面,跟操作本地电脑一样方便快捷 如果服务器系统为Linux,则可以使用常用的软件:Putty 、MobaXterm 等 本文将通过无需安装任何工具,只要是自带cmd 终端(PowerShell也可以),均可便捷连接linux服务器
ssh登录ssh是一种安全且便捷的登录方式,在cmd中一条命令即可连接服务器 ssh wofeng@111.222.333.444//或者域名也可以ssh wofeng@x.juejin.com 解释: @符号左边,为你要登录的服务器账号,如root @符号右边为服务器的公网ip或者域名(但是这个域名必须要到这台服务器中做解析操作,即服务器绑定域名),另外域名的开头x可以替换成任意字母/ 另外:如果你的服务器解析了多个域名,那@右侧可以写任何一个域名都可以.... 但是一般企业服务器设置会更严密一些,比如白名单中的ip段才能远程登录,或者只开放固定端口 前一个没办法,只能在白名单的网络中连接使用 后一个,在连接时加上端口号即可 
注意:按回车键执行后,问你是否继续连接,输入yes,按回车即可 然后就是要你输入你要登录账号的密码:这里无论你输入什么都不会显示出来,目的就是为了密码的隐私性 密码输入完成后,按回车即可 然后出现类似如下图示,即为登录成功,然后就能愉快的玩耍了 
到这里,本文并没有结束 我的宗旨是:快捷登录服务器 上面每次ssh登录都需要输入一遍账号的密码,而且盲输,很容易出错,可能尝试多次都登不上去 那么有没有什么方式可以不用登录密码就能连接成功呢 肯定是有的,设置一次,可以让你在这一台电脑上,以后再也不用输入密码就能登录服务器了
ssh key登录简述一下大致流程: 本地电脑创建一对秘钥,公钥放在linux服务器上,私钥放在本地。 当需要连接到SSH服务器上时,cmd向服务器发出请求,请求用cmd端的秘钥进行安全验证。 服务器收到请求后,先到该用户根目录下寻找共有秘钥,然后把它和发送过来的公钥比较 若一致,服务器就会用公钥加密‘质询’并把它发送给客户端cmd。 客户端收到质询后,就可以用本地的私钥解密再把它发送给服务器。 再通俗一点: 本地生成两个密码,一公一母,公的放服务器(提前放到指定位置),母的放本地 ssh命令执行后,终端会自动到对用的位置配对公母密码,成功的话,直接连接服务器成功,否则失败 好了,现在开始操作
本地生成秘钥执行完毕后,秘钥一般会生产到 c:/users/用户名/.ssh 目录下 id_rsa是私钥(母的),id_rsa.pub是公钥
公钥上传到服务器其实公钥文件可以不用上传到服务器 只需要把内容复制,然后拼接到服务器的anthorized_keys文件内容末尾即可 如果文件要上传,直接使用scp命令即可 scp id_rsa.pub root@a.juejin.com:/root/.ssh 具体文件内容拼接,就不赘述了,只要不把公钥插入到原内容的中间,插入开头或结尾均可 注意:另外这个authorized_keys文件位置,可能不同服务器有些不同,可自行通过whereis authorized_keys 或其他类似命令查找一下
sshd_config配置此配置文件中需要开放远程登录权限 ,关闭密码验证等 一般配置文件目录为: /etc/ssh/sshd_config 如果找不到,也可以用上面的方法whereis 文件 查找一下 找到如下配置,修改成如下即可 RSAAuthentication yesPubkeyAuthentication yesPasswordAuthentication no
重启sshd一条命令足以 /etc/init.d/sshd restart//或者service sshd restart 不报错,即为重启成功
尝试连接像文章开头一样,打开cmd,输入ssh root@111.222.33.444 ,回车即可连接成功 不用输入密码是不是很方便 这个设置过程如果熟练,两三分钟就能设置好,一劳永逸 多台电脑,在anthorized_keys中放多个公钥即可,配置完,勿忘重启sshd
文末总结很多习以为常的操作,其实刚开始都是陌生的 多尝试陌生的东西,找到方法 学习的效率会成倍提高 下载地址: 使用docker环境变量动态配置nginx的问题小结 winserver2019安装软件一直卡在应用程序正在为首次使用做准备 |