MAC OSX使用公钥方式登录Linux服务器并进行安全加固
登录Linux服务器的方式一般是使用ssh,直接使用密码登录既要记忆密码在输入过程中又有安全风险。所以本文将提供一个使用公钥登录的方式来解决输入密码的问题。
首先在mac上生成一个私钥、公钥对
首先,请打开终端。可以使用spotlight直接搜索term,就可以点击应用打开。

打开终端后输入下面的命令:
$ ssh-keygen -t rsa -b 4096 -C 'test'
# 其中 -t表示加密类型,这里使用rsa
# -b表示加密位数
# -C表示备注信息
一路回车下去可以生成两个文件,id_rsa和id_rsa.pub文件。其中id_rsa为私钥文件,需要保存好,被别人获取的话别人也一样可以登录你的服务器。
当然在生成私钥的过程中,也可以对私钥增加密码,那么每次使用私钥登录时都需要输入密码。
本机放置私钥位置
将私钥放到本地home目录的.ssh目录下。若没有.ssh目录,则新建一个目录。
$ mkdir -p /home/test/.ssh
$ cp id_rsa /home/test/.ssh
将公钥上传到Linux服务器
首先要确认你要使用公钥登录使用的用户,直接用该用户使用密码登录。
然后新建.ssh和authorized_keys,给authorized_keys文件600权限,给.ssh文件夹700权限
[test@vps ~]$ mkdir -p /home/camash/.ssh
[test@vps ~]$ cd .ssh
[test@vps .ssh]$ touch authorized_keys
[test@vps .ssh]$ chmod 600 authorized_keys
[test@vps .ssh]$ cd ..
[test@vps ~]$ chmod 700 .ssh/
然后在本地mac端口上新开一个term页签,使用scp将本地的公钥文件id_rsa.pub传送到Linux服务器上。
$ scp id_rsa.pub test@vps:.ssh/
使用cat命令将公钥追加到authorized_keys文件
[test@vps .ssh]$ cat id_rsa.pub >> authorized_keys
修改sshd_config的配置参数
在Linux服务器上,使用root用户修改/etc/sshd_config文件的配置参数。使用以下参数打开公钥登录。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
为了增加Linux服务器的安全强度,可以设置以下几个参数。不过请在确认使用公钥免密登录可行后再修改以下的参数。
PermitEmptyPasswords no
PasswordAuthentication no
PermitRootLogin no
Port 12222
配置完成后,就可在Mac上进行登录测试。
直接使用以下的命令,若一切顺利,不使用密码便可以连接到目标Linux服务器。
$ ssh test@vps
更近一步,若不想输入用户或者主机名,还可以使用config给这个访问增加一个别名
首先,在.ssh下增加一个文件config
$ touch config
在config中按以下内容添加服务器的别名和登录信息。
$ cat config
Host myvps #别名
HostName vps
Port 12222
User test
IdentityFile ~/.ssh/id_rsa
若要增加新的服务器信息,直接在config另起一段增加以上信息即可。
文件建立完成之后,就可以使用别名的登录服务器。
$ ssh myvps
Last login: Sun Jan 17 22:31:31 2016 from xxx.xx.xx.xxxx
[test@vps ~]$
MAC OSX使用公钥方式登录Linux服务器并进行安全加固的更多相关文章
- Mac Item2 SSH免密登录Linux 服务器的两种方式
转自http://blog.csdn.net/jobschen/article/details/52823980 mac ssh登录linux服务器 的两种方式: 个人推荐第二种,zsh方式,只需要把 ...
- 实现利用公钥私钥免密码登录Linux服务器
原理 客户端生成公钥私钥,把公钥拷贝给linux服务器,用自己的私钥连接服务器.实现如下: 如果是两台Linux服用器A和B,A来实现免密码登录B A执行ssh-keygen -t rsa 就会在/r ...
- Mac使用秘钥登录Linux服务器
简介 在 Mac 上配置 SSH 密钥登录远程的 Linux 相关配置 1.创建本地的 SSH 密钥 本地 生成秘钥对 ssh-keygen -t rsa -C 'youxiang@aliyun.co ...
- 使用密钥验证方式登录linux系统
1.使用PuTTY工具PuTTYgen生成密钥对,打开PuTTYgen,点击Generate生成公钥(生成过程动动鼠标会提升进度哦). 2.将公钥(蓝色的是私钥)放到服务器上去: -在/root目录下 ...
- ssh免密登录linux服务器
Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥 ...
- SSH服务及通过SSH方式登录linux
SSH服务及通过SSH方式登录linux 1.检查SSH服务转自:[1]Linux之sshd服务https://www.cnblogs.com/uthnb/p/9367875.html[2]Linux ...
- ssh远程登录linux服务器
ssh远程登录linux服务器 用法: ssh -l user -p port server_ip 或者 ssh -p port user@server_ip 参数: -l 后接要登录的远程系统用户名 ...
- ZH奶酪:putty远程登录Linux服务器非常慢
11.pytty远程登录Linux服务器非常慢 http://www.it165.net/os/html/201209/3425.html 12.启动SSHD服务报错 http://blog.chin ...
- Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录
1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...
随机推荐
- 关于职位的解释---转CSDN的文章
摘要我在IT职场打滚超过15年了,从小小的程序员做到常务副总.相对于其它行业,IT职场应该算比较光明的了,但也陷阱重重,本文说说我的亲身体会,希望大家能在IT职场上战无不胜! 通用法则 法则1:忍耐是 ...
- bzoj 2127: happiness
#include<cstdio> #include<iostream> #include<cstring> #define M 100009 #define inf ...
- C#点击按钮用DataGridView动态增加行、删除行,增加按钮列
原来有一行: 点击添加,在下面增加同样的一行 新增加的行有一列删除按钮,点击某行的删除按钮时,删除当前行 方法: 哈哈,我果然好聪明啊 1.文本框.文本框.添加按钮 2.一个DataGridView( ...
- visual studio 2013连接Oracle 11g并获取数据:(一:环境搭建)
C# WinForm案例: 目标: visual studio 中点击按钮,就可获取到Oracle中数据表的内容 1.安装Visual Studio 2013 ,推荐如下网址,下载ISO镜像,一路ne ...
- 2.4.2电子书fb.c文件
显示层面头文件 定义结构体,为显示统一标准 int (*DeviceInit)(void); 显示类驱动初始化 int (*ShowPixel)(int iPenX, int iPenY, unsig ...
- redis2.8--主从机同步流程
- iOS 下如果存在UIScrollerView 使用UIScreenEdgePanGestureRecognizer实现侧滑效果失效的问题
当你在使用UIScreenEdgePanGestureRecognizer手势实现侧滑的时候,如果后期你导航控制器push出的界面中包含UIScrollerView,这个时候你会发现,侧滑效果无法实现 ...
- 【转发】Linux下清除系统日志方法
摘要:相信大家都是用过Windows的人.对于Windows下饱受诟病的各种垃圾文件都需要自己想办法删除,不然你的系统将会变得越来越大,越来越迟钝!windows怎么清理垃圾相信大家都知道的,那么li ...
- Oracle创建用户并给用户授权查询指定表或视图的权限
MSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND DEFAULT TABLESPACE "TBS_DN ...
- .net异常小总
1. ExecuteReader:CommandText属性尚未初始化 即:没有对sqlCommand对象的CommandText属性赋值,即没有写sql语句. 2. 由于代码已经过优化或者本机框 ...