SSH登陆
SSh秘钥提供了一个更安全的登陆方式,相对于用户名密码登陆。密码可以用字典的方式最终暴力破解,而SSH秘钥登陆仅靠蛮力几乎是不可能被破解的。SSH生成一对长字符串:私钥和公钥。你可以把公钥放在任何的服务器上,然后通过通过客户端通过已有私钥去链接服务器,如果两个匹配,则系统打开不需要密码。
创建一对公私钥
ssh-keygen -t rsa
然后输入文件路径。(默认是在.ssh/目录下),不用设置 passphrase。
这样将会在你的 ~/.ssh 目录下生成 carrie_rsa.pub (公钥)和 carrie_rsa (私钥) 两个文件。
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+
创建 Ubuntu 账户
adduser shino
设置用户名密码等信息,并把该用户加入sudo组。
usermod -aG sudo shino
添加 SSH 公钥到账户下到~/.ssh/目录。
移除 SSH 的端口, Root 登陆权限和密码登陆权限。
sudo nano /etc/ssh/sshd_config
修改内容
Port 30002
...
PermitRootLogin without-password
...
PasswordAuthentication no
保存之后,执行
sudo reload ssh
因为某些云服务商会只开放固定几个端口,这里的 ssh 用了30002 端口连接了。
在自己的电脑上的 ___./.ssh/config 里添加快捷方式
host shino
hostname 服务器ip地址
port 30002
user shino
identityfile ~/.ssh/id_rsa
保存退出后,输入 ssh shino
就会用你的证书自动登陆。
安装Node.js
因为部署的是 Nginx + Node.js 生产环境,所以还要安装 Node.js。
Node 的版本更新比较快,如果要选的话肯定选最近的 LTS 版的,Node.js 的版本管理工具很多,这里推荐使用 nvm 来管理 node 版本。
有兴趣的同学可以去看一下 nvm 的文档。
网友评论