手把手教你Mac上SSH多账号配置

手把手教你Mac上SSH多账号配置,第1张

SSH全称Secure Shell,是应用层上的一种安全协议,专为远程登录和其他网络服务提供安全性的一种协议.

利用SSH协议可以有效防止远程管理过程中的信息泄露问题.SSH会把所有传输内容加密,防止“中间人”攻击.也能防止DNS欺骗和IP欺骗.另外SSH会压缩传输数据,实现更快的传输速度.

使用SSH主要就是通过两个ssh key文件:id_ras_xx(私钥)和id_ras_xx.pub(公钥)实现的

ssh-keygen -t rsa -C "xxx@gmail.com" #添加ssh key

Enter之后会出现以下界面,让你输入文件要保存的路径和名字,直接Enter的话会默认生成id_rsa.pub,因为接下来我们要设置多个平台账号的ssh,所以这里给他重新命一个新的名字,比如 id_rsa_公司名_平台名 (id_rsa_alibaba_gitlab)

完成之后会让你输入密码,可以设置为空,直接 Enter 即可.看到下图内容出现就表示ssh key已经生成. ~/.ssh 目录就会新增两个 id_rsa_xxx 和 id_rsa_xxx.pub 的文件.

默认的话是会自动加入ssh agent中的,但是我们重命名了,需要手动加一下

ssh-add ~/.ssh/id_ras_xx_xx

把id_rsa_xx.pub里的内容复制拷贝到git服务器相应的位置即可.

至此,如果是采用默认命名的话SSH就已经可用了.但由于我们重命名了,还需要配置一下 config 才行.在 ~/.ssh 目录下新建 config 文件,配置一下内容即可

ps: HOST 和 User 中的数据取自项目地址中的 git clone git@github.com:socketio/socket.io-client-swift.git中的git@github.com

我们一般都会有很多不同的git账号,比如GitHub,Gitlab还有国内的gitee,大多数公司也还会使用自己内部的git服务器,那就会有多个账号,这种情况就需要我们在电脑上配置多个账号了.也不复杂,只需重复上述的步骤,然后配置下config即可.

config参考如下:

至此大功告成

首先修改sshd的配置文件:

$ sudo nano /etc/ssh/sshd_config

将该文件的末尾修改如下:

#Subsystem sftp /usr/lib/openssh/sftp-server

#该行(上面这行)注释掉

Subsystem sftp internal-sftp

Match group sftp

#匹配sftp组,如为单个用户可用:Match user 用户名

ChrootDirectory /sftphome/

#指定用户被锁定到的那个目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写

X11Forwarding no

AllowTcpForwarding no

ForceCommand internal-sftp

#UsePAM yes

#该行(上面这行)同样注释掉,或者移到Subsystem sftp internal-sftp的上面

下面建立sftp组和一个测试用户testuser,该用户属于sftp组:

$ sudo groupadd sftp

$ sudo useradd -d /testuser -s /bin/false -g sftp testuser

$ sudo passwd testuser

创建Ftp目录:

$ sudo mkdir -p /sftphome/testuser

重启SSH服务 sshd:

$ sudo /etc/init.d/ssh reload

此时,使用带有sftp功能的客户端软件,比如filezilla、flashfxp就可以用testuser使用sftp方式登录服务器了;

但是,此时无法在 /sftphome/testuser 目录下建立、修改文件,所以还要修改目录权限,把testuser目录属主给予用户testuser:

$ sudo chown testuser:sftp /sftphome/testuser

这样,testuser用户便可以自由 *** 作此目录了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11383060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存