登录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服务器并进行安全加固的更多相关文章

  1. Mac Item2 SSH免密登录Linux 服务器的两种方式

    转自http://blog.csdn.net/jobschen/article/details/52823980 mac ssh登录linux服务器 的两种方式: 个人推荐第二种,zsh方式,只需要把 ...

  2. 实现利用公钥私钥免密码登录Linux服务器

    原理 客户端生成公钥私钥,把公钥拷贝给linux服务器,用自己的私钥连接服务器.实现如下: 如果是两台Linux服用器A和B,A来实现免密码登录B A执行ssh-keygen -t rsa 就会在/r ...

  3. Mac使用秘钥登录Linux服务器

    简介 在 Mac 上配置 SSH 密钥登录远程的 Linux 相关配置 1.创建本地的 SSH 密钥 本地 生成秘钥对 ssh-keygen -t rsa -C 'youxiang@aliyun.co ...

  4. 使用密钥验证方式登录linux系统

    1.使用PuTTY工具PuTTYgen生成密钥对,打开PuTTYgen,点击Generate生成公钥(生成过程动动鼠标会提升进度哦). 2.将公钥(蓝色的是私钥)放到服务器上去: -在/root目录下 ...

  5. ssh免密登录linux服务器

    Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥 ...

  6. SSH服务及通过SSH方式登录linux

    SSH服务及通过SSH方式登录linux 1.检查SSH服务转自:[1]Linux之sshd服务https://www.cnblogs.com/uthnb/p/9367875.html[2]Linux ...

  7. ssh远程登录linux服务器

    ssh远程登录linux服务器 用法: ssh -l user -p port server_ip 或者 ssh -p port user@server_ip 参数: -l 后接要登录的远程系统用户名 ...

  8. ZH奶酪:putty远程登录Linux服务器非常慢

    11.pytty远程登录Linux服务器非常慢 http://www.it165.net/os/html/201209/3425.html 12.启动SSHD服务报错 http://blog.chin ...

  9. Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录

    1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...

随机推荐

  1. bzoj 2661: [BeiJing wc2012]连连看

    #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #inclu ...

  2. NDK JNI 的关键点

    1.System.loadLibrary 的名字是在Android.mk里面设定的   LOCAL_MODULE    := httpdown,MODULE   后面跟的就是了 2.如何正确调用到关键 ...

  3. 算法导论-钢条切割 C# 递归实现

    下班前看到有位兄弟写 钢条切割问题,尝试实现C#版, 还没有实现最优版,分享一下. int[] parr; private void button1_Click(object sender, Even ...

  4. Unity游戏数据用Json保存

    (一)关于路径 unity有几个关键的路径 (1).Application.dataPath 只读路径,就是工作目录的Assets路径 (2).Application.streamingAssetsP ...

  5. 表(list)

    表 表(list)是常见的数据结构.从数学上来说,表是一个有序的元素集合.在C语言的内存中,表储存为分散的节点(node).每个节点包含有一个元素,以及一个指向下一个(或者上一个)元素的指针.如下图所 ...

  6. SharePoint重置密码功能Demo

    博客地址 http://blog.csdn.net/foxdave 本文将说明一个简单的重置SharePoint用户密码(NTLM Windows认证)的功能如何实现 重置密码功能,实际上就是重置域用 ...

  7. JS constructor

    1.每个对象都有一个constructor,都指向创建该对象的方法. 2.function对象的prototype的constructor也是指向该方法.如果对prototype进行重写,constr ...

  8. PAT 05-树6 Path in a Heap

    这次的作业完全是依葫芦画瓢,参照云课堂<数据结构>(http://mooc.study.163.com/learn/ZJU-1000033001#/learn/content)中何钦铭老师 ...

  9. oracle删除数据库中的所有数据的拼接语句

    create or replace function count_rows/**查询各表实际记录数*/(table_name in varchar2,owner in varchar2 default ...

  10. DP重新学

    白书上的DP讲义:一 二 DAG上的dp 不要好高骛远去学这种高端东西,学了也写不对,剩下的几天把基本的dp和搜索搞下,就圆满了.不要再学新算法了,去九度把现有的算法写个痛. 学了数位DP和记忆搜索, ...