1. 在阿里云买了一台最低配的服务器CES,一个月,不到30元。
2.如需Git管理自己的代码
更详细参考: https://blog.csdn.net/lishenluo/article/details/97812583
window本地下载git:
git for windows:Git-2.22.0-64-bit
直接用Git GUI的HELP中生成了公钥和秘钥。
SSH(Secure SHell)是一个应用层的安全协议,专为远程登录会话和其他网络服务。SSH1 和 SSH2 之分,修复缺陷和采用的加密算法不一样。OpenSSH是SSH协议的开源实现。Git GUI中用OpenSSH生成的Public Key(公钥)。
3.如果并不会用git管理自己的代码,那么可以直接下载,xshell中可以生成公钥。
4.刚开始购买linux服务器后使用root权限登陆上去,cd 到home文件夹下
5. 添加用户和设置密码,imtest是创建的用户名,passwd imtest 给指定的imtest用户创建密码,
New password和Retype new password后需要输入一样的密码,我这里输入的是123456,太简单,所以给出了警告,但是不影响使用哈。
6.这个时候其实可以用账号和密码登陆服务器了,我们试一下。
然后双击会话管理器这边的用户名
登陆成功:
7. 其实直接用账号和密码登陆的方式,是不安全的,而且在管理上也比较麻烦,特别是多个用户共用一个linux账号的时候。在有人离职后,还得改修一遍密码,否则别人搞点小破坏都无从抓起。 而用ssh public key登陆的方式相比要安全得多。
8.回到root登陆界面下,su imtest 改变当前用户
9. cd到用户文件夹下,建立.ssh文件并改变权限为700(只有当前用户有读写执行权限,其他用户无权限),必须是700,否则sshd识别不出来,用ssh public key登陆也就有问题。
注意:.开头的文件或文件夹是隐藏的,直接用ll或ls是显示不出来的。用ll -a
10. cd 到.ssh,新建authorized_keys文件,复制windows这边得到的公钥串过来,保存。改变文件权限为600,只有这样sshd才能读到,ssh public key登陆才起作用(这个好似不是600也可以,没有详细试)。
vim一个不存在的文件,相当于新建一个,然后在insert模式下把windows电脑这边的公钥shift+insert粘贴上。:wq保存退出。
11. 重连接会话,以root登陆,vim /etc/ssh/sshd_config 编辑sshd配置文件,把RSAAuthentication 和 PubkeyAuthentication 权限开放并置为yes。
(如果没有以root登陆,vim /etc/ssh/sshd_config 有可能是空的提示permission denied,那应该是没有对sshd_config的读写权限。sudo su -root 切换到root权限,这里应该不可用,所以还是从新连接换成到root权限后对该文件的修改)
12. 重启sshd服务,service sshd restart
13.尝试以Public Key的方式登陆imtest这个账号
14.登陆成功
总结: windows这边准备好公钥,linux新建账号,新建.ssh和authorized_key,设置sshd_config,重启sshd,ok。
这样当有人离职后,只需要从authorized_keys文件中删除他的public key就好。
周二的额外放送:
1. 如果linux服务器作为跳板机,而imtest作为登陆跳板机的一个账号,那么通过imtest登陆到别的服务器怎么弄呢?
其实简单:
在账号当前目录下生产公钥和秘钥(秘钥不设置密码)
同理把id_rsa.pub中的公钥串加入到别的服务器的账号下的.ssh/authorized_key文件里,就可以通过该服务器登陆到别的服务器啦。
登陆: ssh -p port username@ip
2.chmod 命令简单解析
命令ll -a下
前面有十位权限说明,第一位d说明是目录,-表示文件。剩余9位:
对应当前用户,当前用户所在的组,别的用户的r读,w写,x执行权限。
所以700就是rwx------,600就是rw-------。为么是7或者6,是因为7的二进制三位表示就是111,6的二进制三位表示就是是110
正好对应rwx三位,然后ugo三个用户属性,所以9位刚好够表示。