当前位置:首页 > 问答 > 正文

详细教程:如何用电脑远程连接服务器,小鱼一步步教您掌握

咱得先搞清楚,要拿什么“钥匙”开门

远程连接服务器,就像你去别人家串门,首先得知道人家门牌号,其次得有个钥匙对吧,对服务器来说,门牌号就是它的IP地址,钥匙呢,通常有两种:一种是比较古老的密码,另一种是现在更推荐、更安全的SSH密钥对

我刚开始接触的时候,就觉得用密码多直接啊,记一串字符就行了,但后来被前辈教育了,说密码容易被暴力破解,不安全,SSH密钥呢,就像是两把配对的钥匙,一把叫“私钥”,你得死死地攥在自己电脑里,谁也不给看;另一把叫“公钥”,你就把它放在服务器门上,相当于给门锁配了个模子,连接的时候,你用自己的私钥去对服务器上的公钥,“咔哒”一声,门就开了,特别巧妙,所以啊,咱们今天主要就说说用SSH密钥这种方式,虽然一开始设置稍微麻烦一丢丢,但为了安全,值得。

第二步:打造你的专属“钥匙串”(生成SSH密钥对)

这个步骤是在你自己的电脑上完成的,不管你是用Windows,Mac还是Linux,原理都差不多,我以Windows为例吧,因为用的人最多,而且它还有点小特别。

  1. 看看你的电脑有没有“藏”着现成的钥匙: 有时候你可能已经生成过密钥自己却忘了,可以打开“文件资源管理器”,在地址栏输入 %USERPROFILE%\.ssh 然后回车,看看这个文件夹里有没有名字像 id_rsaid_rsa.pub 的文件(id_rsa是私钥,pub结尾的是公钥),如果有,嗯…你可以考虑用旧的,但我个人喜欢给新服务器配新钥匙,好管理。

  2. 没有?那咱就造一把新的: 最省事的方法是用Windows自带的PowerShell或者命令提示符,按 Win + R,输入 cmd 或者 powershell,回车,那个黑乎乎的窗口就出来了。 输入这个命令(直接复制粘贴就行):

    ssh-keygen -t rsa -b 4096

    然后它会问你几个问题:

    • “Enter file in which to save the key...” :意思是问你把钥匙存哪儿,用默认位置就直接回车,一般就是刚才那个 .ssh 文件夹。
    • “Enter passphrase...” :这个挺重要的!它让你给这把私钥再加个密码,相当于你的钥匙本身还有个密码锁,双重保险,虽然不设置(直接回车)也能用,但强烈建议你设一个!别偷懒哈,输入的时候你看不见字符,正常现象,输完回车就行。 然后它会让你再输一遍确认,搞定之后,你会看到生成了两个文件,就是刚才说的 id_rsa(私钥)和 id_rsa.pub(公钥),它可能还会显示一个奇怪的图形,像抽象艺术一样,不用管它。

第三步:把“公钥”这把备用钥匙放到服务器门锁上

详细教程:如何用电脑远程连接服务器,小鱼一步步教您掌握

你得想办法登录到你的服务器,怎么登?呃,这个其实取决于你的服务器提供商(比如阿里云、腾讯云啥的),他们一般会提供一个第一次登录的临时方式,可能是通过网页上的一个“控制台”直接连进去,或者给你一个临时密码,这一步你得看你买服务器那家的说明书,我没办法一概而论,因为每家平台都不一样,挺烦人的是吧……

不管你用啥方法,先想办法进到服务器的系统里(通常是Linux系统),你需要把刚才在你电脑上生成的 id_rsa.pub 文件里的内容,添加到服务器的一个特定文件里,这个文件路径一般是:~/.ssh/authorized_keys

具体操作是: 在服务器上,你可能需要先创建 .ssh 文件夹(如果不存在的话):

mkdir -p ~/.ssh

把你电脑上 id_rsa.pub 文件里的所有内容(可以用记事本打开,然后全选复制),追加到 authorized_keys 文件末尾,可以用 nano 或者 vim 编辑器,

nano ~/.ssh/authorized_keys
```粘贴进去,按 `Ctrl+X`,再按 `Y`,回车保存,或者用这个命令直接追加也行(假设你已经通过某种方式把公钥内容上传到服务器了):
```bash
cat >> ~/.ssh/authorized_keys
```然后按 `Ctrl+D` 结束。
对了 还有关键一步,得给这些文件和文件夹设置正确的权限,不然系统不认,会报错,我当时就在这里卡了好久,气死了。
```bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

这样,服务器这边的锁就装好了。

详细教程:如何用电脑远程连接服务器,小鱼一步步教您掌握

第四步:激动人心的时刻,试试看能不能开门!

回到你自己的电脑,打开那个黑窗口(PowerShell或CMD),输入连接命令:

ssh username@server_ip_address

比如你的服务器用户名是 root,IP地址是 123.123.123,那就输入:

ssh root@123.123.123.123

回车!

如果一切顺利,它会提示你输入第一步里设置的那个“passphrase”(就是给私钥加的密码),输入正确之后,哇塞,你应该就看到服务器的命令行提示符了!root@your-server:~#,这意味着你已经成功远程登录了!以后你再连接,就只需要输这个passphrase,再也不用记复杂的服务器密码了。

一些杂七杂八的小贴士和可能会遇到的坑

  • 关于Windows的特别提醒:Windows现在有OpenSSH客户端了,但有些老版本可能没有,如果你的系统输入 ssh 命令说找不到,可能需要去“设置”->“应用”->“可选功能”里添加一下“OpenSSH 客户端”。
  • 如果连接被拒绝了怎么办:别慌,百分百检查IP地址和用户名对不对,这种低级错误我犯过不止一次,确认一下服务器的SSH服务是不是开着(这个一般默认是开的),最玄学的一点,看看你的服务器提供商的安全组规则(或者叫防火墙规则)有没有放行22端口(SSH默认端口),这个坑栽进去的人不计其数……
  • 用工具会不会更方便:如果你不喜欢命令行,可以用一些图形化工具,比如著名的 PuTTY(但用它管理密钥有点绕,需要转换格式),或者现代一点的 MobaXterm,它们对密钥的支持更好,界面也更友好,不过我觉得,先用原生的命令行搞通一遍原理,以后用啥工具心里都有底。

好了,啰啰嗦嗦说了这么多,希望能帮到你,远程连接这事儿,第一次成功的时候那个成就感还是挺足的,感觉自己和远在天边的机器建立了某种神秘链接,哈哈,多试几次就熟练了,加油!如果哪里卡住了,别怕,随时可以再来问问,或者搜搜更具体的错误信息,网上热心人可多了。