linux小白的开始之路

第一篇文章

作为linux小白的开始

经常上查linux的管理文档,但都写的不够明白,走过的坑也不说,导致摸索的路很长。所以特别想把自己走过的坑写出来,让大家少走弯路。希望以后也有人如此做吧。

选什么linux

上手想练练linux,终端机不要选CentOS,不要选Debian。先选择ubuntu,或者Fedora这种桌面版。之间传承:RHL(redhat)商业-CentOS(免费)-Fedora(桌面)。Debian-ubuntu(桌面)。上手选桌面版,否则装完了连个网卡驱动都没有,对于小白太痛苦了:)。至少我试过那么有名的CentOS,可惜装完了,居然网卡驱动没有呢。连vi都不会的我进行不下去了。或者终端就有windows就好了,服务器呢,网上有评论,我用了debian9,因为更openwrt接近:)

终端下几个简单命令

cd、ls、cat、vi、touch
cd 改变目录
ls 查看目录
cat 查看文档
touch 创建文件
vi 查看编辑文档
vi的简单操作
如何编辑一个文档:在命令行输入 vi 文件名 回车
然后要记住几个重要的命令就可以了,其他待日后学习长进:
i 键
Esc 键
:键
分别用来进入编辑(i),退出编辑(Esc),退出编辑界面下输入命令(:)
:后面的命令有
:wq!保存退出
:q!不保存退出。
其他自己摸索吧,如果想记住更多编辑命令查其他资料就可以了。有了以上几个,估计改几个文档字符应该可以了,可以上手了。

工具

windows下面的两个工具putty、WinSCP

putty:用来连接ssh 端口22。这应该知道。
Winscp,用来连接服务器,把服务器的文件下载下来或者上传文件。这样一些配置文件就不用在远程终端用vi编辑了。有点像FTP的图形工具。
windwos下的编辑工具:UltraEdit,notepad++。不用windows自带的文本编辑器,容易带符号。

两种网络源安装

centos 系列:yum命令
debian系列:apt-get命令
通常安装完成之后,升级库:yum update或者apt-get update。看你装的哪个操作系统。

用户

root 就是windows下的Administrator,最高权限用户。
终端登录看不见输入密码。
sudo命令,一般用户想用root权限安装查看,需要在原有命令前加上sudo。
添加一个用户 useradd 用户名
登录服务器,把root用秘钥登录。不用非得建一个普通用户吧,还要用sudo来做事情。

用秘钥登录root

root 登录远程服务器,用密码风险高。改用秘钥。

先说一下秘钥,分公钥和私钥,成对的。私钥自己拿着,公钥需要拷贝到服务器上。公钥是个明文一串字符,公钥的格式有坑的。
如果是linux客户端,自己能生成秘钥也能上传,但linux下私钥拷贝不出来,不能拿u盘带着。
先说一下linux客户端生成秘钥并传到服务器上的过程。
ssh-keygen -t rsa 这就默认生成2048位的秘钥
觉得不保险用4096的。ssh-keygen -t rsa -b 4096
过程中有个对私钥的密码保护enter passphrase的地方,最好输入一个密码,然后再次确认,保护一下私钥。
一路回车就生成了。
然后进入客户端及其的当前用户目录 cd ~/.ssh
查看内容 ls
看到有id_rsa和id_rsa.pub。id_rsa是私钥保护好哦,id_rsa.pub是公钥
上传公钥:
客户机上输入ssh-copy-id -i id_rsa.pub [email protected]
最后那个就是你服务器的地址。这样这台linux终端机就可以用秘钥登录服务器的root用户了。可以直接试一下了ssh [email protected]

在windows上,如果用puttygen.exe生成秘钥对是个图形界面,点击generate然后鼠标晃动几下就能产生成对的秘钥。
注意哦,之前选择4096,默认是2048的,图形界面上找找。在保存之前可以更改key comment,改成邮箱形式,这样看起来和linux生成的一样。
可以加入passphrase,保护一下私钥。
对于公钥多说一些:保存公钥的按钮得到的公钥不能提交到服务器使用,而是应该把公钥窗口中内容全部拷贝,单独存成一个文件,比如rsa.pub,然后进行后面的手工上传。公钥的文件如下面:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjZrIIYjLgG3IhlmxdAy+bevNCIXDnO69ktnXiSTrtyiEifEmlzPGBwXtrWB5hbZViLYW7GNKXSOG8M/OpUjRDCh+UTNPyV7baLt102MVfytQ9EEoq4x5Z1gUSp1KR0HRQvwID/T4Pj1f9l1QEvCRrwTSePB/bL5765mggsSB99wpV7NIOpfonevILMJBZ6a9WOizUOS6zQfXNpuDdR1rRj4CEHVpXPY3F4zV6Z33uY9fPw/1sdsprVqnsarnjHQMASAFt5ZJkI1tRyLCad3LhjzLccBt7HnIStYPyjP/rjrXYLVVk648ZQGjW/bNgVn3KFiqGUQ+bfHmyw/qvvzMBw== [email protected]
实际的ssh-rsa之后没有回车符的,只是一个空格,因为后面是一个整体字段,所以看起来是像是有个回车符。

手工上传过程:
用putty经密码登录服务器,到/root/.ssh/下面看看是否有authorized_keys。如果没有需要自己生成一个。
touch authorized_keys生成一个密码文件
chmod 600 /root/.ssh/authorized_keys把密码文件权限改成这样,因为这个文件权限固定600,不用想,记住就行。chmod的命令用来改文件权限,权限都是不超过7的三个数,这个权限可以以后再学。
(插一段权限的讲解。每个文件为什么用3个数字呢,表示自己、自己组的成员,其他组的成员,各自有什么权限。权限又分w、r、x,表示读、写、执行。7以下的数字用二进制表示就是000,001,010,011……111。每个数字的二进制正好表示三位的0或1,对应w、r、x的三种权限开关,很巧妙,所以chmod后面要跟三个不大于7的数字哦。)
接着进行吧。
如果已经有authorized_keys,就不需要上面两步。可以先用cat命令打开文件看看是什么样格式的,应该是一段或几段和上面公钥一样的内容,意思是允许使用多个秘钥。
用winSCP将客户端上的.pub文件上传到/root/.ssh,如果看不到这个文件夹,找找界面上打开隐藏。或者拷贝到/root或者/tmp都可以,只有能在服务器端读到这个文件。
把这个文件追加到/root/.ssh/authorized_keys的指令:
cat /root/.ssh/rsa.pub >> /root/.ssh/authorized_keys
公钥的路径可以根据刚才上传的位置改正,比如cat /tmp/rsa.pub或者cat /root/rsa.pub.
特别注意,用>>,这是追加的意思,>是替代的意思。千万注意,不要把原来公钥全部冲掉了。
再用cat打开authorized_keys看看是不是多了刚才上传的公钥。然后把上传的.pub文件删除 rm /root/rsa.pub 具体路径看刚才上传到哪儿了。
以后对公钥格式有把握了,可以直接用WinSCP把authorized_keys下载到本地,直接添加公钥上传。
再次提醒,这个文件的权限必须600,-rw-------,否则不生效。

到了这一步我们就可以试验一下用秘钥登录了。打开putty,其他和原来一样,在点击连接之前,从左侧的SSH子项中点击auth,右侧的文件选择框中选择上传刚才保存的秘钥ppk文件,点击连接,就能看到秘钥连接的效果。如果秘钥之前没有passphrase保护就不用输入密码了。

到了这里,可以在服务器中设置:root只能秘钥登录,而其他用户可以密码登录了。
修改/etc/ssh/sshd_config
将改 PermitRootLogin 从 yes或no 改成 prohibit-password
走过的坑:
注意是改的是sshd_config,不是ssh_config。不知道两个会不会一样,没试过。
网上还有说修改/etc/sshd/sshd_config。但实际上没有sshd的目录。
网上还有人说,要将PermitRootLogin 改成without-password。这是不对的,without-password字面意义是无密码登录,实际更改效果也不能达到只能秘钥登录,已经试过了。

开启防火墙

iptables是防火墙,但太难了,debian/ubuntu上选择UFW作为防火墙,降低难度。据说ufw是iptables的前端工具。
开始安装 apt-get install ufw简单吧。
检查状态 ufw status默认是不激活inactive。
检查状态 ufw status verbose这个命令还能看到已有的规则。默认防火墙规则:Default: deny (incoming), allow (outgoing)意思是只出不进,所有进来端口都封上了。
所以下面特别注意,先在防火墙配置表中开放22端口,否则直接开启后ssh连不上服务器了。
ufw allow ssh这个命令很关键。然后再用ufw status verbose看看规则是怎么样的。
如果只想开放tcp,ufw allow ssh/tcp,实际上ufw allow ssh开放的也只是tcp。
这时才能才能开启防火墙ufw enable,记住哦。
如果要关闭,使用ufw disable
如果要删除规则,请用delete,但最好之前用ufw status numbered,把规则列成数字,这样用ufw delete 数字 来删除比较方便。
常用的网站端口添加
ufw allow http
ufw allow https
最后提醒有的网页说,要看看系统安装的包,ufw app list这个命令会看到系统中的软件,其中有OpenSSH和SSH。其实ssh是协议,OpenSSH是实现协议,所以不矛盾
ufw allow OpenSSH 和ufw allow ssh是一样的。

到此,你的linux服务器可以以秘钥登录root,并且开启了防火墙,已经很安全了,可以继续你的各种折腾了。记住,如果有奇怪的问题,可以先ufw disable关闭一下防火墙试试,解决了以后再研究如何在防火墙添加什么规则。

发布了10 篇原创文章 · 获赞 0 · 访问量 141

猜你喜欢

转载自blog.csdn.net/misisippi68/article/details/104936490
今日推荐