Update: 分享一点东西,学到最多的是楼主呀。谢谢@yesmeck @046569 @doitian @xiaoronglv @blacktulip @bhuztez 论分享的重要性!!!
我也是边学变弄,折腾服务器的管理,感觉要学东西的好多。学了一点就赶紧记录下来,和大家一起分享。
通常登陆服务器我们都是通过 SSH 的方式。
SSH 提供了口令和密钥两种用户验证方式,这两者都是通过密文传输数据的,不同的是,口令用户验证方式传输的是用户的账户名和密码,这要求输入的密码具有足够的复杂度才能具有更高的安全性。而基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到 SSH 服务器上时,客户端就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器。这种方式是相当安全的。
通过密钥登陆 SSH 需要两个部分的设置。
通过 ssh-keygen 生成一对密钥,-f 是指定 key-file这部分应该在客户端完成!!!
deploy@li610-92:~$ ssh-keygen -f ~/.ssh/blog Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/deploy/.ssh/blog. Your public key has been saved in /home/deploy/.ssh/blog.pub. The key fingerprint is: 24:36:f6:de:92:c0:14:c8:f0:18:3f:0d:94:49:00:15 deploy@li610-92 The key's randomart image is: +--[ RSA 2048]----+ |.oEB++. | | ==o . | | . + B . | | * = | | o S | | o o | | + . | | . | | |
一路回车下来,密钥就生成了。然后将生成的公钥加入 authorized_keys 文件中。
$ cp ~/.ssh/blog.pub ~/.ssh/authorized_keys
下面就是将私钥传输回你自己的电脑,我一般使用的是 sftp.通过 sftp 登陆你的 VPS,
$ get ~/.ssh/blog .ssh/
这样服务器端的设置基本完成了。这时,你可以删除掉~/.ssh/blog 这个文件了。
客户端主要是配置你的 ssh config 文件。
$ touch ~/.ssh/config $ vim ~/.ssh/config $ Host demo HostName YOUR_HOSTNAME User YOUR_HOSTUSERNAME IdentityFile ~/.ssh/blog
这样,大功告成。
尝试一下
$ ssh demo
就可以成功登陆了。
下一篇应该会涉及 ssh 登陆的其他安全问题。