1、阿里云控制台->生成密钥
2、私钥放到本地,导入到ssh软件
3、ssh登陆使用密钥登陆
======以上似乎没啥用处...
创建用户user1的时候指定其所属工作组users,例:
useradd –g users user1
如果打算装wdcp面板的朋友,建议系统盘为cenos 6.8 64位
Enter file in which to save the key (/root/.ssh/id_rsa): // 默认是存放在/root/.ssh目录中
Enter passphrase (empty for no passphrase): // 是否需要密码,如果需要,输入密码,如果不需要,直接回车
Enter same passphrase again: // 再输入一次密码,如果没有,直接回车即可
- # 默认回车就好,会在 root目录下自动生产.ssh目录和公钥(id_rsa.pub)私钥(id_rsa)
- ssh-keygen -t rsa
- cd /root/.ssh
- ll
- total 8
- -rw——- 1 root root 1675 Jun 8 19:09 id_rsa
- -rw-r–r– 1 root root 408 Jun 8 19:09 id_rsa.pub
- #新建一个公钥文件,设置权限为600
- touch authorized_keys
- chmod 600 authorized_keys
- #将公钥拷贝到authorized_keys
- cat id_rsa.pub >> authorized_keys
- #修改配置
- vim /etc/ssh/sshd_config
- RSAAuthentication yes
- PubkeyAuthentication yes
- AuthorizedKeysFile .ssh/authorized_keys
- # 进入编辑状态后:
- #i = 进入insert状态
- #ESC + :q! = 不保存退出编辑状态
- #ESC + :wq! = 保存退出
- #重启服务(只有root有权限)
- service sshd restart
下一步,去掉密码登录,仅允许密钥登录,所以在这之前,连接FTP,选择ssh登录,将密钥先下载下来!
到现在,可以用密钥登录,但是密码还是能登录,所以要去掉密码登录
到这一步,看了一下centos占用了多少空间:
- //修改配置(普通用户)PermitRootLogin yes
- vim /etc/ssh/sshd_config
- ChallengeResponseAuthentication no
- PasswordAuthentication no
- UsePAM yes //这里有一个坑,如果改为了no,别的用户也登陆不进来了
- //重启服务
- service sshd restart
- //修改配置(root用户)
- vim /etc/ssh/sshd_config
- PermitRootLogin no
- //重启服务
- service sshd restart
到这里,看起来是好了,其实没有。我们会发现root禁止了;其他用户密码不能登录而且密钥也不能登录,这是因为刚才密钥文件只生成在root用户下,所以要拷贝到其他用户下面
创建用户的指令,在指定目录下创建一个名为ydh的用户:
useradd -d /home/ydh -m ydh
我已经有一个service用户了,就不用再建了,进入root目录 cd /root/
- cd /root/
- //强行复制文件或目录,不论目标文件或目录是否已存在
- cp -rf .ssh /home/service
- //到service目录下,将文件权限修改
- cd /home/service
- chown service:service -R .ssh
这样service就能用密钥登录了,密钥需要在之前就要使用FTP连接shell下载下来,下载私钥
完成!
普通用户切换回root
- su - root
不同用户不同密钥登录,需要 在服务器上
su 用户名
进入不同的用户再走一遍创建密钥即可!
- # 1、创建密钥对
- ssh-keygen -b 1024 -t rsa
- # -b 1024 采用长度为1024字节的公钥/私钥对,最长4096字节。
- # -t rsa 采用rsa加密方式的公钥/私钥对,除了rsa还有dsa方式,rsa方式最短不能小于768字节长度。
- # 如果还需要使用更多其他参数请参考man ssh-keygen
- # 2、将/home/用户名/.ssh/id_rsa拷贝到ssh的客户端
- cd /home/用户名/
- #给密钥目录设置权限
- chmod 700 .ssh/
- cd .ssh
- mv id_rsa.pub authorized_keys
- chmod 600 authorized_keys
将.ssh目录改为test用户和testusers组:
在/home/用户/.ssh目录执行:
- chown -R test:testusers ./
重启服务:service sshd restart
本地git用户免密提交
- ssh-keygen -t rsa
本地先生成密钥对(如果生成好,Mac下一般在 ~/.ssh 目录下 id_rsa.pub 文件)
将其中的公钥,.pub结尾的文件内容,发给服务器
到服务器上执行:
追加公钥即可
- cat /tmp/id_rsa_user1.pub >> ~/.ssh/authorized_keys
git用户限制ssh登录服务器
编辑/etc/passwd这个文件,在文件末尾可以找到类似这样的行:
git:x:1002:1002::/home/git:/bin/sh
改为:
git:x:1002:1002::/home/git:/usr/bin/git-shell
把/bin/sh改为/usr/bin/git-shell,这样git这个账户就只能用来克隆或者推送数据到git仓库中了,而不能用它来登录到主机。
报错:Permission denied (publickey)
第一步:检查您是否连接到正确的服务器
- $ ssh -vT git@github.com
- OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
- debug1: Reading configuration data /Users/you/.ssh/config
- debug1: Reading configuration data /etc/ssh_config
- debug1: Applying options for *
- debug1: Connecting to github.com [IP ADDRESS] port 22.
第二步:检查登录用户是否生效
- $ ssh -T git@47.70.30.30
- git@47.70.30.30: Permission denied (publickey).
权限被拒绝(publickey)。
正确的提示语应该是:
Hi username! You've successfully authenticated...
第三步:查看详情
- $ ssh -vvv 47.00.00.00
2018.10.13报错原因:登录用户被禁用,删掉用户及用户组,重新建一个git用户即可