转自:https://www.runoob.com/w3cnote/set-ssh-login-key.html

我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。其实,有一个更好的办法来保证安全,而且让你可以放心地用 root 账户从远程登录——那就是通过密钥方式登录。

密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。

下面来讲解如何在 Linux 服务器上制作密钥对,将公钥添加给账户,设置 SSH,最后通过客户端登录。

1. 制作密钥对

首先在服务器上制作密钥对。首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令:

[root@host ~]$ ssh-keygen  <== 建立密钥对  #或生成pem:ssh-keygen -t rsa -f my.pem -C "your@email.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <==  Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空
Enter same passphrase again: <== 再输入一遍密钥锁码
Your identification has been saved in /root/.ssh/id_rsa. <== 私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录。

现在,在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。

2. 在服务器上安装公钥

键入以下命令,在服务器上安装公钥:

[root@host ~]$ cd .ssh
[root@host .ssh]$ cat id_rsa.pub >> authorized_keys

如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:

[root@host .ssh]$ chmod 600 authorized_keys
[root@host .ssh]$ chmod 700 ~/.ssh

3. 设置 SSH,打开密钥登录功能

编辑 /etc/ssh/sshd_config 文件,进行如下设置:

RSAAuthentication yes
PubkeyAuthentication yes

另外,请留意 root 用户能否通过 SSH 登录:

PermitRootLogin yes

当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:

PasswordAuthentication no

最后,重启 SSH 服务:

[root@host .ssh]$ service sshd restart

4. 将私钥下载到客户端,然后转换为 PuTTY 能使用的格式

使用 WinSCP、SFTP 等工具将私钥文件 id_rsa 下载到客户端机器上。然后打开 PuTTYGen,单击 Actions 中的 Load 按钮,载入你刚才下载到的私钥文件。如果你刚才设置了密钥锁码,这时则需要输入。

载入成功后,PuTTYGen 会显示密钥相关的信息。在 Key comment 中键入对密钥的说明信息,然后单击 Save private key 按钮即可将私钥文件存放为 PuTTY 能使用的格式。

今后,当你使用 PuTTY 登录时,可以在左侧的 Connection -> SSH -> Auth 中的 Private key file for authentication: 处选择你的私钥文件,然后即可登录了,过程中只需输入密钥锁码即可。

Vultr是一家提供日本、美国、欧洲等多个国家和地区机房的VPS主机商,硬盘都是采用SSD,VPS主机都是KVM架构,VPS配置最少的内存768MB、硬盘为15GB的VPS只要5美元/月,vultr是根据时长来扣费的,使用多长时间就算多长时间,扣对应的款。

Vultr VPS新注册用户赠送50美元优惠活动(可免费使用VPS时间为2个月)

Vultr针对新用户的优惠又来了!! 这次直接注册即送50美金使用60天。60天后50美金自动失效! 本次活动需要信用卡或者或者paypal付款!paypal付款需要充值五美元,信用卡付款则会扣除2.5美元预授权费用(只是预授权,之后钱会回到你的信用卡的)。 2016年1月开始,vultr再次升级月流量,最低配置从原先的400GB增加到目前的1000GB,可以说非常超值,另外vultr 打算2016年一季度在亚洲扩充一个机房数据中心,目前选择是中国香港,韩国首尔,新加坡中的一个,所以,为了避免linode机房那种新用户限制选择东京机房的政策,如果未来有打算使用vultr上面机房数据中心的,建议现在就先注册好账号。

2016.4.7更新 vultr优惠码:NGINX20    新注册用户免费赠送20刀,有效期1年时间!

此外,Vultr VPS除了赠送50美元两个月的计划外,其他的计划都在打8折!无需输入优惠码! (vultr 是禁止用户重复注册账号的,即如果你的支付信息有2个账号在使用,那么你的账户会被关闭)

下面给出具体教程(2016.3.2vultr官网更新,本教程也相应更新):

点击这里查看官网:地址直达

3201

活动地址:http://www.vultr.com/freetrial/

注意:这个是一个新注册用户的优惠活动,所以需要新的账户。点击Sign Up and get $50 for free

3202

vultr 是禁止用户重复注册账号的,即如果你的支付信息有2个账号在使用,那么你的账户会被后台关闭的。简单的说就是一个账户的支付信息比如paypal 账号是对应唯一的一个的,如果你再次使用这个paypal支付另外一个新注册的账号的话,那么账户就会被关闭。所以,重复的注册账号是不可取的。

特别提醒

有部分朋友出现购买vultr的VPS在使用几天甚至付款验证后账户就被关闭,主要原因vultr 是禁止用户重复注册账号的,即如果你使用的paypal或者信用卡已经绑定了Vultr其他账号,那么你新注册的账户会被后台关闭的。简单的说就是一个账户的支付信息比如paypal 账号是对应唯一的一个的,如果你再次使用这个paypal支付另外一个新注册的账号的话,那么账户就会被关闭。所以,重复的注册账号是不可取的。

一 选择信用卡支付

填写信用卡信息,这个预扣款$2.5美元,后面会返还。另外使用优惠码 :NGINX20 可以获得vultr赠送的20美元一年使用权。

3203

这里一个很好的建议是你充值$10美元,防止你被误判恶意使用,如果你使用优惠码NGINX20 ,会被人工审核。这样你就可以免费使用VPS期限7个月了。

二 Paypal支付Vultr (仅限paypal 支付查看,信用卡支付的请忽略)

如果说你没有信用卡,但是你有Paypal 账号,那么你需要先点击上面的Expires 60Days From Today 后面的Remove按钮(谨慎操作,Vultr只给一次机会,选择信用卡的同学切勿选择,本操作仅限paypal支付同学使用 ),输入优惠码 NGINX20 获得20美元一年的使用权。

4701

三 服务器创建

账单信息确认完成,我们就可以点击右侧的3206 Deploy New Server  建立VPS了。

硬盘默认

服务器选择日本 东京(目前日本线路比较绕,选择洛杉矶比较好)

操作系统默认

服务器配置:默认即可。

其他信息默认即可。

点击 place order ,生成一个新VPS。

3207 3208 3209

进入 Servers ,稍等片刻服务器信息就生成了。

3212

点击 Cloud Instance 进行管理。

3211

Vultr 的这个控制面板还是比较清新的,VPS的所有功能都在一个页面集中,服务器停止,重新启动,重装系统,删除服务器等指示清晰,非常容易管理。

3210

按照上面的配置信息我们登录putty,注意vultr 端口号是22. 初次登录密码就是Initial Password 里面的信息,登录后就是我们常规的操作了。

简单简介下putty的使用

首先按照vultr 给我们的信息填写,IP选择控制面板的IP,端口22,选择SSH模式

461

点击open,会有一个窗口,选择是。

462

login as填写 root.密码填写vultr提供的密码。

putty的密码输入进去是不显示的,所以这里的正确操作步骤是:先复制vultr给的密码,注意复制的密码前后不能有空格(如上图正确密码cteyjukrieh!5),然后先鼠标左键点击下putty软件,再在绿色光标那里鼠标右键一下,然后回车键(Enter建)。这里最关键,好多朋友密码总是输入不对,要么是密码复制错误多了空格,要么就是因为没有看到密码显示就多鼠标右键,多复制了几次密码。正确复制密码回车后的界面是这个样子。

464

 vultr相关性能测试

如果你对速度还不爽,还可以做下优化,比如改进下TCP算法:hybla。 或者安装锐速.

TCP算法代码:

加载tcp_hybla模块(OpenVZ在这一步就会报错):

/sbin/modprobe tcp_hybla

然后查看是否已经正常加载:

lsmod |grep hybla

如果你的内核版本较新,比如CentOS 6.x的2.6.32,则可以用下列命令查看当前可用的拥堵算法,里面应该有hybla了:

sysctl net.ipv4.tcp_available_congestion_control

sysctl net.ipv4.tcp_congestion_control=hybla

编辑

vi /etc/sysctl.conf

在文档末行增加

net.ipv4.tcp_congestion_control= hybla

保存加载:

sysctl -p

然后重启即可。

其他可以参考:

我们用这个日本东京VPS来看视频,浏览网页的话是非常给力的。

在本站内购买vultr,加QQ:2102629796,获得免费搭建ss。

锐速给我们tcp连接加速

安装锐速

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh

卸载锐速

chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f

根据屏幕提示输入 serverSpeederInstaller 其他信息默认,遇到Y或者N的地方,全部选Y.

然后我们按照图片的数据指示,一路回车就可以了。

11707

现在打开你的浏览器试试速度吧,有图为证

vultr

如果你安装没有效果,编辑一下命令

vi /serverspeeder/etc/config

然后rsc和maxmode设置参数修改为1.然后在进行重启

/serverspeeder/bin/serverSpeeder.sh restart

常用命令

启动锐速:

/serverspeeder/bin/serverSpeeder.sh start

停止锐速:

/serverspeeder/bin/serverSpeeder.sh stop

查看锐速是否正常运行

service serverSpeeder status

检查是否有appex0模块:lsmod

lsmod

32

参考1:http://jingyan.baidu.com/article/ce436649132f2e3773afd3e5.html  TTL刷机降级
参考2:http://jingyan.baidu.com/article/27fa73268519f746f9271f40.html 获取Root权限

一、刷机

  1. 首先拧开迅雷赚钱宝底部的螺丝以拆解,在其电路板中就可以找到如图所示的“TTL接口”,将赚钱宝的TXD接TTL板的RXD,赚钱宝的GND接TTL板的GND,赚钱宝的RXD接TTL板的TXD。如图所示:

    迅雷赚钱宝变砖TTL修复教程
  2. 将TTL板与电脑USB接口连接,同时在电脑中安装TTL板驱动程序,并在“计算机管理”-“设备管理器”界面中,查看并获取当前“TTL板”端口号,如图所示,串口端口号为“COM3”。

    迅雷赚钱宝变砖TTL修复教程
  3. 直接在百度中搜索下载“CRT”,并从搜索结果中选择第一项即可下载“secureCRT”工具,如图所示:

    迅雷赚钱宝变砖TTL修复教程
  4. 安装并打开“secureCRT”工具,点击“文件”-“快速连接”项,并从打开的“快速连接”窗口中,设置“协议”类型为“串口”,“端口号”为“COM3”,“波特率”为“115200”,点击“连接”按钮。

    迅雷赚钱宝变砖TTL修复教程
  5. 此时打开“迅雷赚钱宝”电源,此在“secureCRT”端口调试界面中,将显示一系列的内容,待内容显示稳定后,按“回车”键以调出命令提示符“#”。

    迅雷赚钱宝变砖TTL修复教程
  6. 接下来将迅雷赚钱宝固件拷贝到TF卡或U盘根目录下,并将TF卡或U盘插入迅雷赚钱宝设备中。以下小编为大家提供“1064”或“1334”两个稳定的旧版固件下载地址:

    http://update.peiluyou.com/conf/miner/packages/thunder-miner-app_V1.0.1064_arm.ipk

    http://update.peiluyou.com/conf/miner/packages/thunder-miner-app_V1.0.1334_arm.ipk

    迅雷赚钱宝变砖TTL修复教程
  7. 接着在“secureCRT”界面依次输入以下内容:

    # df   查看文件目录,获取“/dev/sda1”(U盘)的位置“/media/sda1”

    # cd /media/sda1    即可进入U盘根目录

    迅雷赚钱宝变砖TTL修复教程
  8. 接着输入命令

    # ls    确认一下U盘中是否正确存放着迅雷赚钱宝相应的固件文件。

    opkg-cl install thunder-miner-app_V1.0.1064_arm.ipk     升级固件

    或者输入

    #opkg-cl install --force-downgrade  thunder-miner-app_V1.0.1064_arm.ipk   强制降级固件

    迅雷赚钱宝变砖TTL修复教程
  9. 9

    待对应的迅雷赚钱宝固件刷机完成后,输入命令:

    # reboot

    拼按回车以重启迅雷赚钱宝,至此TTL修复迅雷赚钱宝变砖操作完成。

    迅雷赚钱宝变砖TTL修复教程

 

二、获取Root权限

为啥需要有root权限的账户?就是为了刷机、升降级啦。拥有一个有root权限的账户,是众多赚钱宝玩家的必备条件。

在为自己添加一个root账户前,你首先要能够用系统本身的root账户登录赚钱宝。有朋友可能会觉得奇怪,既然已经能用系统root账户登录了,为啥还要再增加一个多余的root账户呢?

赚钱宝在某个固件版本之后(具体版本我忘记了),每次重启后系统本身root账号的密码都是随机生成的,使用起来非常不方便。所以就需要为我们自己添加一个密码永远不会变的有root账户特权的私有账户。

至于如何使用系统原有的root账户登录赚钱宝,请继续往下看。

工具/原料

  • 迅雷赚钱宝,固件版本:V1.1.811
  • 工具软件:putty.exe
  • 用户必须有网络以及相关软件使用的基本知识

方法/步骤

  1. 首先用系统本身的root账户登录赚钱宝。具体方法可参考我的另外一篇文章:

    如何获得迅雷赚钱宝root账号的密码

    3如何获得迅雷赚钱宝root账号的密码

    赚钱宝如何添加有root权限的用户
  2. 成功登录赚钱宝之后。运行命令

    adduser admin

    这里的“admin"就是我们想要添加账户的用户名,你可以选择任何想要的名字。但是仅限字母、数字和下划线。

    运行adduser命令后,系统会提示你输入你想要的密码 "New Password:",然后再提示你输入同样的密码"Retype password:"。

    至此,新的用户 "admin" 已经添加成功。

    赚钱宝如何添加有root权限的用户
  3. 现在运行命令

    vi /etc/passwd

    在打开的文件中找到新增 "admin" 的所在行。

    admin:x:1001:1001:Linux User,,,:/home/admin:/bin/sh

    把第一个1001改成0。

    admin:x:0:1001:Linux User,,,:/home/admin:/bin/sh

    键盘输入Esc :wq保存退出即可。有关vi命令的使用方法,请自行百度。

    赚钱宝如何添加有root权限的用户
    赚钱宝如何添加有root权限的用户
    赚钱宝如何添加有root权限的用户
  4. 接着运行2个命令

    cp /root/.bash_profile /home/admin/.bash_profile

    cp /root/.bashrc /home/admin/.bashrc

    赚钱宝如何添加有root权限的用户
  5. 我们马上来验证一下。用我们新增的root权限用户admin来登录下。

    至此,大功告成,你可以任性地自由刷机啦。

    赚钱宝如何添加有root权限的用户

 

使用方法:
putty左侧分类选择Connection->Data,右侧一目了然。填好账号密码后,可以在Session中保存。现在是明文保存,存在一定风险,请勿保存未做安全措施线上服务器信息。
修改方法:
0. 网上搜索了教程,基本都是针对putty0.6版本的,对于C++水平较弱的人来说,参考教程给的思路,整理了一下方法。大体思路就是利用ssh可以保存用户名的功能扩展成保存密码的功能,基本采用复制username修改为password的方式制作,目前只支持SSH2登录方式,对于大多数linux服务器来讲足够了。

1. 官网下载putty源码 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
2. 使用VS2012以上C++编译项目
3. 修改config.c文件1952行,增加:

ctrl_editbox(s, "Auto-login password", 'w', 50,
HELPCTX(connection_password),
conf_editbox_handler, I(CONF_password), I(1));

4. 修改putty.h文件712行,增加:
X(STR, NONE, password) \
X(INT, NONE, password_from_env) \

5. 修改winhelp.h文件78行,增加:
#define WINHELP_CTX_connection_password "connection.password:config-password"
#define WINHELP_CTX_connection_password_from_env "connection.passwordfromenv:config-password-from-env"

6. 修改ssh.c文件,搜索Send the password packet
在注释下面增加:
oYeah:;

找到ssh2_pkt_addstring(s->pktout, s->password);
替换s->password为ssh->password

搜索Plain old password authentication.
在下面代码
add_prompt(s->cur_prompt, dupprintf("%s@%s's password: ",
ssh->username,
ssh->savedhost),
FALSE);
的后面增加:
ssh->password = conf_get_str(ssh->conf, CONF_password);
s->password = ssh->password;
if (strlen(ssh->password) == 0) {
ret = get_userpass_input(s->cur_prompt, NULL, 0);
while (ret < 0) {
ssh->send_ok = 1;
crWaitUntilV(!pktin);
ret = get_userpass_input(s->cur_prompt, in, inlen);
ssh->send_ok = 0;
}
}
else {
ret = 1;
goto oYeah;
}

dialog.c

增加

union control *ctrl_editpasswordbox(struct controlset *s, char *label, char shortcut,
int percentage,
intorptr helpctx, handler_fn handler,
intorptr context, intorptr context2)
{
union control *c = ctrl_new(s, CTRL_EDITBOX, helpctx, handler, context);
c->editbox.label = label ? dupstr(label) : NULL;
c->editbox.shortcut = shortcut;
c->editbox.percentwidth = percentage;
c->editbox.password = 1;
c->editbox.has_list = 0;
c->editbox.context2 = context2;
return c;
}

这里的c->editbox.password = 1;说明该文本框为密码类型

.config 引用的地方也要改为对应的函数

ctrl_editpasswordbox(s, "Auto-login password", 'w', 50,
HELPCTX(connection_password),
conf_editbox_handler, I(CONF_password), I(1));

点击下载:putty.0.641.zip" target="about_blank">putty.0.64

终于知道怎么应对了,每每都是关了窗口再开新的,太麻烦了。在win下习惯了ctrl + s
==============================
putty遇到ctrl+s的问题
问题描述:用putty玩linux的时候由于以前用window
习惯写完东西按一下ctrl+s 保存,但是在putty一按下就不能再输入了。
  www.2cto.com
后来查找到:ctrl+s 是putty的一个命令大概是这样子:
”Long long ago“ 某些旧的”哑终端“会在发送过来的数据太多,
显示速度跟不上时发送一个Ctrl+s让对方等一下,然后再准备好继续显示时发送一个Ctrl+q。
Putty“兼容”了这个特性。也有人说是Ctrl+s是锁定屏幕用的 。
不管是怎样,当你不小心在Putty中按了Ctrl+s后再按一下Ctrl+q就OK了。

参考文章:http://www.miui.com/thread-442048-1-1.html

 

环境:笔记本电脑,win7系统
设备:小米手机(强君的)
手机操作:打开usb绑定和wifi热点,设置wifi热点,配置ssid名和密码
PC操作:系统会自动安装usb驱动,生成网卡,本地连接2 设置IP为192.168.42.1 掩码255.255.255.0,然后在本地连接(也就是能上网的网卡)右键属性设置共享,允许本地连接2通过它上网。
如果无法识别驱动,装个豌豆荚就行了。
手机操作:安装quicksshd,豌豆荚有下载
PC操作:远程通过putty连接到手机,手机的IP在quciksshd上可以查到
PUTTY操作:
busybox sysctl -a | grep ip_forward
#查看是否存在net.ipv4.ip_forward = 1
#如果不存在
echo 1 >/proc/sys/net/ipv4/ip_forward
#将如下写成shell,比如share_aphot.sh
busybox route add default gw 192.168.42.1
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.43.0/24 -o usb0 -j MASQUERADE
然后赋予执行权限
chmod 777 share_aphot.sh
运行,就能上网了。

将来如果需要手机上网的时候,在putty里执行share_aphot.sh就行了,如果为了方便可以在手机上安装超级终端,登录进去执行su获得root权限再执行share_aphot.sh。

1. 到vmware官方网站获取:VMware-server-2.0.0-122956.i386.rpm

2. 到CentOS上面执行rpm -ivh VMware-server-2.0.0-122956.i386.rpm

3. 运行vmware-config.pl,根据提示回答使用网络的Bridge模式,可以不用NAT。

安装过程中需要的序列号:

VMware Server 2 for Windows A0025-FWR6J-V1MFH-4R63M
VMware Server 2 for Linux A2J05-FWWF0-UGH0J-4J2HN

4.修正SELinux
chcon -t texrel_shlib_t /usr/lib/vmware/vmacore/libvmacore.so.1.0

chcon -t texrel_shlib_t /usr/lib/vmware/hostd/diskLibWrapper.so

5. /sbin/service vmware restart

6. 如果要远程管理(我的CentOS是最小安装,没有X),使用putty连接到CentOS机器上面,设置下面的ssh tunnel:

L8222 到远程的127.0.0.1:8222
L8333 到远程的127.0.0.1:8333
L902 到远程的127.0.0.1:902

7. 在本机上面运行IE并访问: http://localhost:8222/
输入3中指定的管理账户,如root和root的密码就可以了。

8. 如果要使用WMWare Remote Console只要选择Console标签,并下载安装IE插件就可以了。