复制文件夹下的所有文件到另一个文件夹下
cp ~/dirname/* ~/otherdirname
解压rar文件
PS:在liunx下原本是不支持rar文件的,需要安装liunx下的winrar版本
下载rar解压器:http://www.rarlab.com/download.htm
wget http://www.rarsoft.com/rar/rarlinux-4.0.1.tar.gz //下载
tar -zxvf rarlinux-4.0.1.tar.gz
cd rar
make
看见下面这些信息就是安装成功了
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
常用rar命令
rar x yhcsh.rar //解压 yhcsh.rar 到当前目录
rar yhcsh.rar ./yhcsh/ //将 yhcsh 目录打包为 yhcsh.rar
在运行解压rar文件时,如果文件是这种样子的
- enCaIC0617700Vir.part1.rar
- enCaIC0617700Vir.part2.rar
- enCaIC0617700Vir.part3.rar
- ....
- ....
- ....
- enCaIC0617700Vir.partn.rar
只用执行解压第一个文件就可以了,其余的会自己解压;
获得一个已经被删除但是仍然被应用程序占用的文件列表
lsof |grep deleted
找到相应的进程,然后kill掉;
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录;
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
运行yum makecache时出现“another app is currently holding the yum lock;waiting for it to exit”的解决:
rm -f /var/run/yum.pid
杀掉占用yum的程序:
kill -9 3966
建立一个新的文件
touch newfile
vi newfile
对文件重命名
mv a.txt b.txt
使用多条命令:末尾加;
yum install ksh -y;yum install libXext.so.6 -y;yum install libXtst.so.6 –y;yum install libXt.so.6 -y;yum install libGLU.so.1 --setopt=protected_multilib=false;yum install libelf.so.1 -y;yum install libXrender.so.1 -y;yum install libXp.so.6 -y;yum install libXrandr.so.2 –y;yum install *xorg* -y; yum install libXp -y;yum install ld-linux.so.2 -y;yum install openmotif -y;yum install libstdc++.so.5 -y;yum install -y xterm;
进入centos7时有两个选项
其中第一个为正常启动,第二个为急救模式;
同时centos更新后,不会有删除旧的内核,因此也在选项界面出现多个内核选项;
基于MOOC-Linux系统管理课程
树形目录
/:根目录
/bin:可执行目录文件
/boot:系统核心文件和目录所需文件
/dev:系统设备device相关文件
/etc:系统主要配置文件
/home:放置用户家目录
/lib:系统和程序运行所要调用的库文件
/root:最高权限root根用户的家目录
/sbin:根用户才能执行的命令文件
/srv:放置服务器启动所需访问的数据
/tmp:临时存放文件目录
/opt:第三方软件建议安装目录
/media:放置移动设备相关文件,如驱动
cd切换目录命令
pwd
显示当前目录
cd ~xxx
进入当前xxx用户的家目录
cd /
进入根目录
cd ./xxx
进入当前目录的xxx下
mkdir创建文件夹命令
mkdir -p /relax/playinggame
-p创建嵌套目录
rmdir删除文件夹命令
rmdir /playinggame
无法删除空目录
ls列出文件命令
ls -a /tmp
列出所有文件包括隐藏文件
ls -l /tmp
列出可见文件的详细信息
ls -la /tmp
列出所有文件的详细信息
-rwxr--r-- 1 lpf lg 23 May 24 22:15 hello.sh
文件类型/用户权限---文件硬链接数目---文件拥有者---文件从属用户组---文件大小---文件创建时间---文件名称
rwx:read可读/write可写/eXecute可执行权限
lpf:文件拥有者对应第一组rwx权限
lg:文件从属用户组对应第二组r--权限
other:其他用户组对应第三组r--权限
rwxr--r--:表示111-100-100为711权限
-:第一个字符表示文件类型
d:目录文件
-:普通文件
c:字符设备文件
b:块设别文件
l:符号链接文件
chmod:更改用户权限
chmod 700 hello.sh
chown:更改文件拥有者
chown lg:lpf hello.sh
将文件拥有者改为lg:将文件从属用户组改为lpf
cp拷贝文件
cp /tmp/hello.sh ~/halo.sh
将文件hello.sh拷贝到家目录下并更改名字为halo.sh
cp /tmp/file01 /tmp/file02 /tmp/file03 ~
将三个文件file01/file02/file03文件拷贝到家目录下
cp -r /tmp/ ~/
将tmp目录全部拷贝打家目录下
\cp -f /tmp ~/tmp
-f强制覆盖文件,要求文件有写权限
mv/rm/touch移动命令
mv /tmp ~
mv移动目录不需要任何命令
mv -f /tmp ~
-f强制覆盖同名文件
mv /tmp/file01 ~/file02
mv命令可以实现重命名作用
rm -R /tmp
-R删除目录下所有文件
rm -fR /tmp
-f删除文件不需要询问,强制删除
touch empty
创建一个空文件,若文件存在则会更改文件时间戳属性
ln创建符号链接
ln -s ~/hello.sh ~/hello_slink
给hello.sh创建一个hello.slink符号链接,同时两个文件属性不同,但是内容相同,删除原文件后会失效符号链接文件
Inode区:存放Inode-number和其他属性,相当于目录
DataBlock区:文件实际数据,相当于正文
Linux目录:存放着文件名和inode-number,相同先找到文件名->再找到indo-number->indoe->数据
硬链接就是在文件名处让多个文件名指向一个indo-number
软链接(符号链接)就是源文件的一个快捷方式,就像指针指向源文件这个内容,其本身是不包含内容的;而硬链接就是源文件的一个别名,拥有和源文件一样的内容,而不单单是指向源文件;
ln ~/hello.sh ~/hello_slink
给hello.sh创建一个硬链接,这两个文件的indo-number相同,因此是同一个文件,属性内容都相同,两者没有依赖关系,删除原文件也不会影响硬链接文件
打包命令tar:不改变文件大小,只是将文件连接在一起,会使文件名更大
tar -cf hello.tar ./helloa ./hellob ./helloc
-c创建打包文件
-f指定打包文件名
tar -tf ./hello.tar
-t查看打包中的所有文件
tar -f ./hello.tar --delete ./helloa
--delete删除打包文件中的某一个文件
tar -f ./hello.tar -A ./hallo.tar
-A合并两个打包文件
tar -f ./hello.tar -r ~/hallo
-r给打包文件添加新的文件
tar -xf ./hello.tar -C ~/Music
-x解包
-C指定解包路径
压缩命令gzip
gzip -x ./helloa
-x其中x为1到9中的任一一个数,表示压缩比
压缩后的文件后缀默认为.gz
tar -czf hello.tar.gz ./helloa ./hellob ./helloc
-czf打包压缩一体操作
.tar.gz采用两种命令的文件名
tar -xzf hello.tar.gz
-xzf解包解压缩
查找命令
locate:速度快,linux系统将所有文件名都记录在/var/ib/mlocate的数据库中,而locate命令就是在其中查找名字,而数据库每天更新一次,由于数据库不是实时更新因此会出现已删除文件或新增文件查找不出的情况
find:遍历硬盘查找匹配文件
find / -name passwd
-name查找文件名为标准完整的名字
find /bin -type l
-type根据文件类型查找
find /tmp -mtime -3 -ls
-mtime -3时间为3天内
find /tmp -mtime +7 -ls
-mtime +7时间为7天前
find /tmp -mtime 4 -ls
-mtime 4时间为4天前那天
-mtime文件修改时间-天数
-mmin小时
-amin文件被读取/执行时间-天数
-atime小时
-ctime文件属性修改时间-天数
-cmin小时
find /tmp -size -3k -ls
find /tmp -size +100c -ls
find /tmp -size 10M -ls
-size按照文件大小查找-k千字节/c字节/M兆/G千兆
find /tmp -user root -ls
find /tmp -uid 500 -ls
find /tmp -ugroud stu -ls
find /tmp -gid 0 -ls
根据用户名称/用户id/用户组/用户gid查找文件
find /tmp -perm 754
-perm查找权限为754的文件
find /tmp \(-size +1k -a -size -10M -a -mmin -30 -a -type f \) -ls
查找大小在1k到10M之间、在30分钟内、类型为f的文件
最后使用\进行转义
find /tmp \(-size +1k -a -size -10M -a -mmin -30 -a -type f \) -exec rm -rf {} \;
查找大小在1k到10M之间、在30分钟内、类型为f的文件,并将文件删除掉
-exec到\;表示扩展命令的开始和结束
rm -rf 表示具体命令
{}表示查找到的文件
可以用-OK代替-exec
区别在于-OK更为安全,其在执行每一个文件时都会询问一次
find /tmp \(-size +1k -a -size -10M -a -mmin -30 -a -type f \) -OK rm -rf {} \;
通配符
*代表任意长度的字符串
cp /tmp/*.txt ~
?代表任意单个字符
cp /tmp/??.sh ~
复制名字只有两个字符串的sh文件到家目录~
[c1-c2]代表c1到c2之间的任意单一字符
cp /tmp/file[0-9].txt ~
chmod 700 /tmp/script[a,l,x].sh
将所有tmp文件夹下scripta/scriptl/scriptx.sh权限设置为700
{string1,string2,...stringn}代表匹配其中任意字符串
rm -rf {script,file}*.sh
删除所有script和file开头的所有sh文件
!取反
tar -cf file.tar /tmp/file[!0-9].txt
打包除file0到file9外的所有txt文件
查看文本文件
cat
查看文件
创建文件
连接文件
less
适用较大文件
/关键字
n和N跳转关键字
head
head -n 20 ~/message查看文件头20行
head ~/message默认显示头十行
tail查看文件末尾几行
查看日志文件的开头和结尾
Unix程序设计准则:
1)一次只做一件事,并将一件事做好
2)能够于其他程序协同工作
3)能够处理文本流
输入输出重定向
I/O Steam:
键盘输入:stdin标准输入流0->命令->终端命令行输出:stdout标准输出流1/stderr错误输出流2->流数据
输出重定向
ls -l /tmp/exapmle/ 1> ./stdout.txt
结果没有任何输出在终端,其结果全部输出到了文本文件中
ls -l /tmp/exapmle/ 1>> ./stdout.txt
>>将输出衔接到文本的后面,而不是覆盖原本文件的内容
ls -l /tmp/exapmle/ 2> ./stdout.txt
重定向错误输出,实现功能和重定向标准输出一样
ls -l /tmp/exapmle/ &> ./stdout.txt
将文件的标准输出和错误输出重定向到同一个文件中
/dev/null
特殊文件,写入文件的内容都会被丢弃
输入重定向:从文件中获取输入
tr标准输入中替换字符
tr ' ' '\t' <./hello.txt
将hello.txt中的用'\t'替换hello.txt文本文件中的' '输入终端命令行中
sort -k 按照关键字进行排序
sort -k2 <<EOF
EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d就代表EOF.
EOF一般会配合cat能够多行文本输出.
1)向文件test.sh里输入内容。
[root@slave-server opt]# cat << EOF >test.sh
> 123123123
> 3452354345
> asdfasdfs
> EOF
[root@slave-server opt]# cat test.sh
123123123
3452354345
asdfasdfs
追加内容
[root@slave-server opt]# cat << EOF >>test.sh
> 7777
> 8888
> EOF
[root@slave-server opt]# cat test.sh
123123123
3452354345
asdfasdfs
7777
8888
覆盖
[root@slave-server opt]# cat << EOF >test.sh
> 55555
> EOF
[root@slave-server opt]# cat test.sh
55555
2)自定义EOF,比如自定义为wang
[root@slave-server opt]# cat << wang > haha.txt
> ggggggg
> 4444444
> 6666666
> wang
[root@slave-server opt]# cat haha.txt
ggggggg
4444444
6666666
有点不是很理解这操作,需要再进一步思考
管道:将命令输出传入下一个命令
|管道命令使用这个命令来分割不同的命令
ls -al /etc |less
ls -al /etc |grep 'ssh'
这里执行了两个命令ls和less、以及ls和grep
cut ~/install.log| cut -c1,2
切割install文件并选择切割前两列字符
cut /etc/passwd |cut -f1 -d":"
cut -f1 -d":" /etc/passwd
-f表示以字符串为主来切割
-c表示以字符为主来切割
-d表示使用":"分隔切割字符串
wc /etc/passwd
wc统计文本行数、单词数、字节数
-l表示仅仅统计行数
ls -al ~| cut -c1 | grep "d" | wc -l
|管道来一次使用多个命令,管道协同
管道不会传递错误输出,遇到错误输出会直接输出终端
vi学习**重点过多可以慢慢整理
vim --version
阅读模式
编辑模式:
输入i编辑、输入x删除、删除dd一行、撤回u、删除J换行符
ctrl+x减小数字
gg移动到文件首行、G移动到文件结尾行、0移动到当前首行、$移动到当前行尾
3G移动到第三行行首、10$下移10行并定位到行尾
命令行模式:
输入shift+;
退出q、保存修改w
设置行号set nu/取消设置行号set nonu
直接输入xxx表示查询字符
e!将所有操作撤除
用户和用户组
Linux通过一个UserID(UID)来识别用户:除了管理员用户root,也有虚拟用户bin/ftp/mail,使用者用户
组用户GroupID(GID),只能存在一个主用户组
id lpf
finger lpf
两者显示的用户信息不同
su
切换到root用户
useradd -c 用户备注 -u 用户UID -d 用户家目录 -g 主用户组 -G 从属用户组 -s 用户bash lg
passwd lg
usermod -c -d -G -s -u 修改用户的各个属性
userdel lg 删除用户
groupadd -g GID liufri
usermod -G liufri
groupmod -g GID -n 用户组名称 修改用户组GID和用户组名称
GID修改其很容易造成系统混乱
groupdel liufri
让渡用户权限
vi /etc/sudoers
修改用户权限
root ALL=(ALL) ALL
lpf ALL=(ALL) ALL
lg mooc=(root) /sbin/shutdown -h 5
%group_p mocc=(root) /sbin/shutdown -h 5
sudo -u root xxxx
使非root用户可以使用root命令
四组重要额定配置文件
/etc/passwd
存放用户花名册:用户名:x密码:UID:GID:用户描述:用户家目录:用户使用shell
/etc/shadow
为passwd的影子文件,和passwd文件存放信息互补,两者合一为完整信息
用户名:加密后的密码:密码最后一次修改时间:密码修改最小时间间隔:密码修改的最大时间间隔:密码失效警告时间:用户最长不活动用户:用户失效时间(默认为空即不启用改功能):保留字段
/etc/group
存放用户组信息:用户组名:x密码:GID:从属该用户组用户列表
/etc/gshadow
为group的影子文件
用户组名:!密码:组管理者:从属于该用户组的用户列表
硬盘
/dev/xxy
xx表明硬盘的类型,sd采用SCSI/SATA/USB硬盘,hd采用IDE硬盘
y表明使用硬盘的第几个接口,有a-z有接口
/dev/xxyn
n表示分区,有1-4主分区、5以后为逻辑分区
fdisk -l /dev/sda
硬盘分区和格式化
fdisk /dev/sdb
>n
>p主分区
>1分区号
>+100G
>n
>e
>2
>空可以分配余下所有空间>n
>l
>+64G
>n
>l
>+64G
>n
>l
>空可以分配余下所有空间
>w
>fdisk -l /dev/sdb
>mkfs -t ext4 /dev/sdb1
>mkfs -t vfat /dev/sdb1
格式化
mkswap /dev/sdb7
格式化一个标准分区
手动挂载分区
mount -t分区类型 ext4分区文件系统格式 /dev/sdb1挂载分区名 /lpf/hgfs挂载点
PS:只有根用户才可以挂载
-o挂载后的行为
mount -t ext4 -o ro /dev/sdb5 /lpf/douw
rw可读可写默认
ro只读
以只读的方式挂载sdb5
unmount /dev/sdb8
卸载挂载点
被挂载的文件夹在挂载分区后无法访问,尽量将分区挂载在空目录下,且固定分区挂载的文件夹
自动挂载分区
/etc/fstab
UUID/挂载设备名 挂载点挂载目录 挂载分区文件类型ext4/SWAP/iso9600 挂载参数 Dump参数 开机检查分区次序1最优
使用UUID可以避免多次调用分区造成分区加载顺序改变,挂载失败
blkid可以查看所有设别的UUID
管理网络接口
ifconfig查看网络接口
eth0表示网络接口名称/Linkencap网络连接类型/Ethernet以太网/HWaddr表示网络接口的硬件地址/Inetaddr网络接口ip地址/Bcast网络广播地址/Mask子网掩码/inet6addr网络接口的ipv6地址/UP BROADCAST RUNNING MULTICAST表示网络接口的运行状态/MTU:1500Metric:1表示当前接口的最大数据传送单元大小和接口度量值
RX/TX packets:表示网络接口收发包的情况
collisions:表示数据传输发生冲突的次数
lo:不是一个真正的网络接口,是一个模拟出来的接口,是回环接口(loop)
其ip永远为127.0.0.1,子网掩码为255.0.0.0
为系统提供一个单机网络环境,一般用于网络程序的调试
ifconfig -a
显示所有的网络接口,无论是否被启用
ifconfig eth up
开启eth1接口
ifconfig eth1 192.168.16.125 netmask 255.255.255.0
配置eth1的ip地址和子网掩码
ifconfig eth1 mtu 5000
配置eth1的mtu值
以上的参数设置会由于重启网络接口而被重置
service network restart
开启网络接口
ifconfig eth1 down
关闭eth1网络接口
IP地址:IPAddress/192.168.71.128
子网掩码:Network Mask/255.255.255.0
网关:Gateway/192.168.71.2
DNS地址:DNSAddress/192.168.71.2
主机名:HostName/mooc.nbcc.cn
systerm-config-network
配置以上参数
cd /etc/sysconfig/network-scripts/
vi ifcfg-ethN
N为数字
BOOTPROTO=static
不使用DHCP协议来配置网络接口,而是采用静态配置
IPADDR=192.168.71.128
GATWAY=192.168.71.2
NETMASK=255.255.255.0
DNS1=192.168.71.2
一台主机中默认的网关GATWAY只能有一个
多个网络接口下最后一个网络接口网关生效
ping
确定是否可以连接上网关
ping -c N 主机名/主机IP
-c指定PING的包数
dig查询域名参数
vim /etc/sconfig/network
HOSTNAME=xxxx
vim /etc/hosts
192.168.71.128本机IP地址和www.mooc.com对应主机名
DHCP为主机自动配置网络参数
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=DHCP
取消IPADDR/GATWAY/NETWORK/DNS1的配置
其会为DHCP服务器指定主机名HOSTNAME/DNSADDRESS-NDS服务器地址
service network restart
重启网络参数
用RPM管理软件包
RPM红帽软件包管理器red hat packet manager
在RPMfind.net寻找安装包
RPM包
tsclient - 2.0.0-10.el6 .x86_64/i386/i586/i686/noarch适用于所有架构
软件包名称 - 版本号 - 适用硬件架构
wget ftp://rpmfind.net/linux/sourceforge/s/sn.....
获取网络地址的下载
rpm -q opera
-q:查询软件包是否安装
rpm -ivh ./opera-12.16-1860.x86_64.rpm
-ivh:i安装/v显示安装信息/h输出#作为进度条
rpm -e opera-12.16-1860.x86
-e:卸载,同时完整输入软件包名称
软件包依赖问题:
rpm中的二进制文件是编译好的,所以要安装一个包需要重现其安装环境
引入yum解决rpm软件包依赖问题
yum黄狗更新器
先从heade中查询依赖关系,解析依赖关系,再从yum服务器上下载到其相关安装包
yum clean all
清楚yum的依赖关系
yum makecache
存储yum服务器上的依赖关系
yum install gcc-c++
安装
yun list gcc-c++
查询软件包是否安装
yum list gcc *
yum list installed|less
列出所有主机上已安装好的软件包
yun list available
列出当前所有可安装的软件包
yum info gcc-c++
查询gcc-c++信息
yum update python
更新python软件包
yum remove gcc-c++
删除该软件包
yum管理第三方软件包源
centos中的官方软件源:不包含有版权争议的软件包、不包含不稳定版本的软件包
著名第三方源:EPEL源、Remi源、ATrpms源、RPMFusion源、RepoForge源、ELRepo源
wget http://repository.it4i.cz/mirrors/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
下载安装软件包
rpm -ivh ./rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
安装软件包
cd etc/yum.repos.d/
yum install yum-plugin-priorities
vim /etc/yum.repos.d/CentOS-Base.repo
在每个仓库末尾添加priority=1
vim /etc/yum.repos.d/rpmforge.repo
在每个仓库末尾添加priority=10,,表示优先级低于centos仓库
yum install mplayer mplayer-gui
安装mplayer软件
Error: Package: mplayer-1.0-0.48.svn20100703.el6.rf.x86_64 (rpmforge)
Requires: libopenjpeg.so.2()(64bit)
Error: Package: mplayer-1.0-0.48.svn20100703.el6.rf.x86_64 (rpmforge)
Requires: libesd.so.0()(64bit)
Error: Package: librtmp-2.3-1.el6.rf.x86_64 (rpmforge)
Requires: libgnutls.so.26()(64bit)
Error: Package: librtmp-2.3-1.el6.rf.x86_64 (rpmforge)
Requires: libgnutls.so.26(GNUTLS_1_4)(64bit)
Error: Package: mplayer-1.0-0.48.svn20100703.el6.rf.x86_64 (rpmforge)
Requires: libartsc.so.0()(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
管理和控制进程
ps查看进程process-status
ps -A
-A列出所有进程
PID进程ID-TTY进程所使用的终端(?表示不占用终端)-TIME表示进程所持续的时间-CMD表示程序对应的程序名
ps -Af
UID由哪个用户运行的进程-PID-PPID进程父ID-C表示占用主机CPU计算资源的比例(通常为0)-STIME进程开始运行时间-TTY-TIME-CMD
父进程
kill PID
杀死进程
ps -Af|grep sshd
查找名称中带有sshd的进程
ps -Al
-l列出完整进程信息
F进程旗标-S进程运行状态-UID-PID-PPID-C-PRI进程优先级-NI进程nice值-ADDR进程存储地址-SZ进程占用内存大小-WCHAN表示进程是否在运行-TTY-TIME-CMD
top动态监视进程,每3秒刷新一次
分为整体性能和详细实时进程信息
PID-USER进程发起者-PR进程优先级-NI-VIRT表示进程使用的虚拟内存总量(单位kb)-RES进程使用的未被换出的物理内存大小(单位kb)-SHR共享内存大小-S进程运行状态-%CPU占用CPU百分比-%MEN进程使用的物理内存百分比-TIME+系统使用进程时间总和-COMMAND
排序:M内存占用降序/N降序PID/P降序CPU/R当前排序反向/><选择排序
kill -l
-l列出所有信号
kill会发出相应的信号来控制进程
15)SIGTERM进程终止信号 默认
9)SIGKILL强制终止信号
kill PID
kill -9 PID
pkill firefox
plill -u lpf
xkill
图形界面里的进程管理
前台进程
后台进程:不占用终端,即运行了也可以使用终端命令行
守护进程:后台运行的周期性进程,例如ApacheHttpServer(httpd)
chkconfig --list
查询系统服务
运行级别:
0关闭或停止系统
1单用户模式
2没有联网的多用户模式
3联网的多用户模式
4保留暂未使用
5联网并且使用图形界面的多用户模式
6重启系统
service httpd status
查询httpd进程状态
service httpd start
只有根用户有权限执行service
service httpd
查看6个运行级别的状态是开启还是关闭
chkconfig --level 35 httpd on
开启自启动httpd的35运行模式
SSH协议SecureSHell:主要提供安全的远程登陆和数据传输服务,采用全程加密
Rlpgin/Telnet协议:使用明文传输数据,会被中间人攻击
yum list installed |grep openssh
yum - install openssh
service sshd status
service sshd start
chkconfig --list sshd
chkconfig --level 35 sshd on
配置openssh服务器文件/etc/ssh/sshd_config
插入
PeimitRootLogin no
PeimitEmptyPasswords no
ClientAliveInterval 30
ClientAliveCountMax 4
service shhd restart
PuTTY:配置
vim /etc/ssh/sshd_config
修改
PasswordAuthentiction no
ssh_keygen -t rsa
cd ~/.ssh
cat ./id_rsa.pub >> authorized_keys
chmod 400 ./authorized_keys
来源:oschina
链接:https://my.oschina.net/u/4369214/blog/3981153