通过async程序配合私钥认证,机械硬盘加树莓派,对个人服务器进行低成本容灾

公钥相当于锁,私钥相当于钥匙,在安装了ssh的计算机中, 都有 ssh-keygen 这个命令

运行 ssh-keygen 命令, 可以同时生成一组公钥和私钥, 放在 $HOEM/.ssh 目录下

运行ssh-keygen命令后一路回车, 即可在 $HOME/.ssh/目录下发现 id_rsa 和 id_rsa.pub 这个两个文件

生成公钥和私钥

然后我们拷贝 id_rsa.pub 中的所有字符串, 粘贴到服务器端的 $HOME/.ssh/authorized_keys 中, 就相当于把锁放到服务器上了, authorized_keys 里面可以放很多锁, 每个锁就是一行字符串.

在个人电脑这一侧, 我们也可以存放很多钥匙, 这些钥匙需要一个钥匙串统一管理, 记录每一把钥匙, 对应哪一把锁, 这个钥匙串就是 $HOME/.ssh/config 文件, 在文件中可以配置多个以下的代码块

# host 可以是ip 也可以是绑定ip的域名
Host 47.23.55.66
# 需要通过ssh登陆的用户名
User root
# 私钥钥在个人电脑中存放的位置
IdentityFile ~/.ssh/id_rsa

当我们在个人电脑使用 ssh root@47.23.55.66 登录服务器时, ssh程序会自动使用 ~/.ssh/id_rsa 私钥内容与服务端进行通信, 进行登录验证

另外为了保证私钥和config文件的安全,私钥和config权限配置为 600

chmod 600 config
chmod 600 id_rsa

在客户端,如果要搬家, 只需把.ssh文件夹全部搬走,就实现全部密钥和配置文件的搬家,十分方便。

通过查阅config文件我们还可以了解自己手底下掌管了多少台机器,每台机器的ip, 用户名,和密钥文件尽收眼底

在服务端

sshd

我们前面使用的是客户端程序ssh, 而服务端用来给ssh提供服务的是sshd,也就是服务端程序

如果你按照上文,配置好公钥密钥后,无法实现ssh自动登录, 那需要检查sshd的配置文件 /etc/ssh/sshd_config, 以下是我服务器的配置, 可以直接拷贝覆盖。

#       $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#ListenAddress 0.0.0.0
#ListenAddress ::

# The default requires explicit activation of protocol 1
#Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Ciphers and keying
#RekeyLimit default none

# Logging
# obsoletes QuietMode and FascistLogging
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#StrictModes yes
#MaxAuthTries 6
MaxSessions 10000

#RSAAuthentication yes
#PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile      .ssh/authorized_keys

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
#KerberosUseKuserok yes

# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
#GSSAPIEnablek5users no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PAM authentication via ChallengeResponseAuthentication may bypass
# If you just want the PAM account and session checks to run without
# and ChallengeResponseAuthentication to 'no'.
# WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several
# problems.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
UsePrivilegeSeparation sandbox          # Default for new installations.
#PermitUserEnvironment no
#Compression delayed
ClientAliveInterval 60
#ClientAliveCountMax 3
#ShowPatchLevel no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

# override default of no subsystems
Subsystem       sftp    /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server
UseDNS no
AddressFamily inet
PermitRootLogin yes
SyslogFacility AUTHPRIV
PasswordAuthentication yes

设置免登录后有什么好处?

  • 可以不用记密码
  • 可以愉快的使用scp命令, 将服务器上的文件夹子备份到本地硬盘
备份
  • 不止scp, 还能使用支持增量同步,断点续传的,更高级的async命令

rsync -azvvv --bwlimit=100 --append-verify root@v2fy.com:/opt/ ./opt/

-a 递归同步,同步源信息
-z 对进行同步的数据文件进行压缩后传输
-v 显示传输细节 (-vvv细节更详细)
--bwlimit 限制传输带宽 单位为kb
--append-verify 支持断点续传,并对传输完成的文件进行校验
rsync

通过async程序配合私钥认证,对个人服务器进行低成本容灾

编写简单的定时小程序,部署到外接一个大机械硬盘的树莓派,程序每日凌晨定时运行,通过 rsync 对服务器资源进行备份,按日期新建文件夹,保留服务器30天的记录,即使服务器丢失了数据, 也能快速回滚数据, 降低损失。

个人站长,并没有大量的金钱去购买大量服务器空间和企业级安全服务,进行数据容灾, 防黑客攻击;

如果个人服务器被黑客攻破服务器,清空了数据,就会十分悲惨。

而服务器存储的只是私钥, 黑客可以即使攻破了服务器,也无法定位到持有私钥的树莓派。最极端的情况,把硬盘从树莓派一拔,即使黑客通过社会工程学,顺着网线找到你的树莓派,也无法删除与树莓派分离的硬盘数据。

在2021年,将服务器数据通过私钥认证,下载到本地,保存到机械硬盘里,依然是最经济,也最稳定的数据备份方式。

树莓派加1TB机械硬盘配合私钥使用async进行增量同步,足以容纳个人服务器最近一个月的数据

树莓派加1TB机械硬盘配合私钥使用async进行增量同步,足以容纳个人服务器最近一个月的数据,5W的树莓派,一个月备份的额外成本只有几度电而已~

本文永久更新地址(欢迎来读留言,写评论):

https://www.v2fy.com/p/2021-06-28-ssh-1624891495000

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容