遇到问题:对于公司的远程linux服务器,虽然刚开始会分配一个超级管理员来让你做操作,但时间久了,很明显,这是相当不安全的。对于远程的服务器。基本是会限制root直接登陆的。然后新建其他用户,并只让其他用户有sudo的权限。

解决问题:创建公钥,私钥来登陆,主要是权限设置妥当,否则也会导致登陆不成功。

实现思路:

1.在客户端创建一个用户,生成私钥,公钥;
2.在服务器上创建一个用户(可以使用sudo的相应权限,),把客户端的公钥传到服务器相应用户下.ssh,并更改名为authorized_keys。
操作步骤:

1.       客户端创建密钥

2.       在服务器上创建用户(给予sudo权限)。 服务器上创建用户server。把客户端的私钥拷贝到该用户下.ssh文件下,并改名为authorized_keys。给authorized_keys 600的权限。注意.ssh文件给700的权限,否则也会导致后来的ssh私钥登陆没权限,不成功的报错。

3.    客户端登陆服务器

4.      服务器上的该用户给予sudo的权限。

使用visudo命令来修改/etc/sudoers文件,使用visudo命令如果修改错了,是会提示错误,并不让保存。切记不要直接编辑修改/etc/sudoers 如:用 vi /etc/sudoers 命令来编辑,一旦编辑错了,即会导致其他sudo的用户都无法执行sudo的命令。
并进入 /etc/sudoers文件,找到wheel组,并把%wheel前的#号去掉,如下图状态。

把用户加入wheel组,vi /etc/group

注意:不同linux版本,用户的权限不同。ssh的私钥公钥登陆略有不同,注意就好。

实际上,这样创建完成了。就已经可以在客户端使用私钥登陆到服务器了。实现了安全登陆。然后我ssh登陆之后,服务器端总是要询问用户的密码。于是想去掉这个密码。直接使用ssh的私钥登陆之后,就可以执行相关sudo 的命令。

linux sudo不用密码的方法:

说到使用sudo权限,一般都会编辑/etc/sudoers这个文件。 默认情况我们会看到有"%wheel ALL=(ALL) ALL"一句话,就是允许wheel组在所有主机上执行所有命令,当然是需要passwd的。
1. 如果想把wheel组的用户都sudo不用密码那么可以将这一行换为:"%wheel ALL=(ALL) NOPASSWD: NOPASSWD ALL"即可。
2. 如果仅仅想让user1用户sudo不需密码,则可添加"user1 ALL = NOPASSWD: ALL"这样一行。
3. 如果让jay用户sudo不用密码即可执行某几个命令,可这样写"user1 ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser"
4. 欲知其他更多配置方式,请运行"man sudoers"看帮助文档吧。
注意:我自己的一个配置没生效,找原因还找了阵子,写到这里吧。
我添加"user1 ALL = NOPASSWD: ALL"这样一行;但是,user1执行sudo时还是需要输入密码,这是为什么?
原来是,我这一行在"%wheel ALL=(ALL) ALL"组策略之前,后面的组配置覆盖了前面的配置,而user1属于admin组,所以需要密码。
这时,只需要将%admin行用#注释掉即可。OK!然后立马就生效了,可能执行sudo时系统都会去读取/etc/sudoers的,所以立即就生效了。

linux--私钥登陆相关推荐

  1. 如何用私钥登陆linux服务器和cyberduck登陆配置

    一.用私钥登陆linux服务器 1. 修改私钥文件的权限为500 chmod 500 id_rsa.tianlab 2. 登陆命令中 要加上 -i 参数,完整命令如下 ssh -i /yourpath ...

  2. 使用ssh公钥私钥登陆服务器并配置Sublime的SFTP通过私钥登陆

    1. 使用ssh公钥私钥登陆服务器 打开gitbash,输入ssh-keygen,然后会给很多的提示信息,包括公钥要存放在哪里等,直接一路回车,只要记住默认存放的文件位置在哪里就可以 打开产生文件的文 ...

  3. linux 登录 忘记密码,redhat linux忘记登陆密码之解决办法

    redhat linux忘记登陆密码之解决办法 很简单的一个技巧,给大家介绍一下 在这个界面 按任意键 按 e键(编辑命令之前启动) 选择第二项 在按e键(修改选定的命令在启动) 输入single ( ...

  4. Linux远程登陆到Linux服务器

    一.为什么需要远程登陆Linux 1.说明:公司开发时候,具体的应用场景是这样的 (1)Linux服务器是开发小组共享 (2)正式上线的项目是运行在公网 (3)因此程序员需要远程登陆到Linux进行项 ...

  5. linux版本有密钥吗,windows7密钥是什么意思又一Linux版本登陆微软Win10

    IT之家10月27日消息 昨日微软Microsoft Store正式上架了SUSE Linux Enterprise Server 15,这是一个开源的服务器操作系统. SUSE Linux Ente ...

  6. Mac 使用私钥登陆服务器

    Mac 使用私钥登陆服务器 Windows登陆服务器可以参考这篇博客: Centos7服务器创建新用户,并为新用户创建公钥私钥对,为ssh客户端设置网络代理,新用户本地通过私钥免密登录服务器 http ...

  7. Linux远程登陆管理工具

    Linux远程登陆管理工具 1. 网络连接模式 1.1. 桥接模式(B) 1.2. NAT模式(N) 1.3. 仅主机模式Host-Only(H) 仅主机模式:表示虚拟机(或理解为服务器)通过VMne ...

  8. linux主机邮件提醒,Linux用户登陆邮件提醒功能怎么设置?

    为了服务器的安全起见,我们在用户登陆的时候就发一份邮件进行提醒,不管是正常的用户登陆还是从其他地方进行登陆的用户,下面小编与大家分享一下如何做好Linux用户登陆的邮件提醒功能,希望对大家有所帮助,谢 ...

  9. linux中whoami命令的作用是,linux whoami命令参数及用法详解(linux查看登陆用户名)

    linux whoami命令参数及用法详解(linux查看登陆用户名) 2019年05月31日 | 萬仟网科技 | 我要评论 whoami 命令显示登录名.与使用命令 who 并指定 am i 不同, ...

  10. linux用户登陆后无法加在.bashrc

    今天遇到一个问题,linux下某用户登陆后无法加在其自身的.bashrc, 通过source .bashrc发现.bashrc是没有问题的,文件的权限也是没有问题的. 后来发现是因为该用户下的.bas ...

最新文章

  1. Python自动化运维之函数进阶
  2. Microsoft Speech SDK 5.1
  3. android 代码片段,Android 中常用代码片段
  4. angularjs控制器之间的数据共享与通信
  5. 一文带你了解传统手工特征的骨龄评估方法的发展历史
  6. 种草笔记App放话:要让一万创作者月入过万
  7. python中int什么意思_python中int是什么意思
  8. 自定义封装无人值守Windows10镜像
  9. mysql中根据经纬度求距离_mysql、java中根据经纬度计算距离
  10. CKEDITOR富文本编辑器+AJAX+JQUERY+ListView综合应用
  11. 装系统缺少硬盘驱动_缺少操作系统-向我学习,请在今年备份您的硬盘!
  12. 医学图像算法工程师面经
  13. Apache httpd 几个报错的解决记录
  14. 【Pytorch深度学习实战】(4)前馈神经网络(FNN)
  15. Matlab之保存/写矩阵数据到文本(fprintf, save, dlmwrite)
  16. 在vscode中运行jupyter时报错
  17. 诚邀参加“认知与路径:元宇宙科技传播”线上专题研讨会
  18. YMIR2.0易用手册---视频教程
  19. oracle报错笔记,如12514
  20. android 删除短信权限,Android删除短信的方法

热门文章

  1. SWT里Slider和Scale的区别
  2. RHCE系列之权限管理----ACL(访问控制列表)
  3. Java学习,继承关系的学习和理解
  4. Android 选项菜单
  5. WP8开发日志(3):MVC设计模式进阶——绑定多个数据集
  6. EIGRP路由协议基本设置
  7. 动态设置HTML:v-html
  8. Leetcode 5067.统计只含单一字母的子串
  9. 对 pretext tasks 的理解
  10. 第四周课程总结&实验报告。