SSH server

ssh config

$ ssh mutian@192.168.1.100
ssh: connect to host 192.168.1.100 port 22: Connection refused

mutian@mutian:~$ ps -e |grep ssh
 1575 ?        00:00:00 ssh-agent
mutian@mutian:~$ sudo apt-get install openssh-server
..........
mutian@mutian:~$ ps -e |grep ssh
 1575 ?        00:00:00 ssh-agent
 3574 ?        00:00:00 sshd

/usr/sbin/sshd为ssh client/server中server端的守护进程,如果上述结果中没有sshd出现,那么可能就是你的server端程序没有安装

---------------------------------------------

建立ssh无密码认证,无需每次都输入密码

mutian@mutian:~/soft/test/test$ ssh-copy-id art@10.46.32.226
art@10.46.32.226's password: 
Now try logging into the machine, with "ssh 'art@10.46.32.226'", and check in:

  ~/.ssh/authorized_keys
mutian@mutian:~/soft/test/test$ ssh art@10.46.32.226

muhe221@muhe221-TP:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/muhe221/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/muhe221/.ssh/id_rsa.
Your public key has been saved in /home/muhe221/.ssh/id_rsa.pub.
The key fingerprint is:
33:59:b9:ba:66:80:72:bd:00:2d:f4:b8:2a:4c:dd:c0 muhe221@muhe221-TP
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|  .        .     |
| ..+      o      |
|  +Eo    o .     |
|  .+oo  S .      |
| .o.+.o  +       |
|o. o . o.        |
|o.    . o.       |
|.      o.        |
+-----------------+
muhe221@muhe221-TP:~/.ssh$ ls
id_rsa  id_rsa.pub  known_hosts
muhe221@muhe221-TP:~/.ssh$ sudo ssh-copy-id mutian@192.168.1.100
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is 8e:f5:59:0f:21:51:de:47:8a:49:e7:2a:9a:69:d7:91.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
mutian@192.168.1.100's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'mutian@192.168.1.100'"
and check to make sure that only the key(s) you wanted were added.

muhe221@muhe221-TP:~/.ssh$ ssh mutian@192.168.1.100        //此处无需输入密码
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.5.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

New release '14.04.3 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Sat Jan 23 16:11:23 2016 from muhe221-tp.local
mutian@mutian:~$ 

------------------------------------------------------

Write failed: Broken pipe
问题现象:使用ssh root@10.2.x.x命令连接服务器时,有时候会出现错误提示:Write failed:Broken pipe
问题原因:远程服务器网络连接不稳定导致这个会话中断,简单的方法就是使用ssh多尝试几次
解决方法:
1、客户端设置:~/.ssh/ 文件夹中添加 config 文件,并添加下面的配置:ServerAliveInterval 60
2、在服务器的 /etc/ssh/sshd_config 中添加如下的配置:ClientAliveInterval 60
3、在登录命令添加参数:ssh -o ServerAliveInterval=60 user@sshserver(一般一两次就登录上了)。

--------------------------------------------------------------------------

ifconfig (interfaces config)

1.命令格式:

ifconfig [网络设备] [参数]

2.命令功能:

ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。

3.命令参数:

up 启动指定网络设备/网卡。

down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。

arp 设置指定网卡是否支持ARP协议。

-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包

-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包

-a 显示全部接口信息

-s 显示摘要信息(类似于 netstat -i)

add 给指定网卡配置IPv6地址

del 删除指定网卡的IPv6地址

<硬件地址> 配置网卡最大的传输单元

mtu<字节数> 设置网卡的最大传输单元 (bytes)

netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。

tunel 建立隧道

dstaddr 设定一个远端地址,建立点对点通信

-broadcast<地址> 为指定网卡设置广播协议

-pointtopoint<地址> 为网卡设置点对点通讯协议

multicast 为网卡设置组播标志

address 为网卡设置IPv4地址

txqueuelen<长度> 为网卡设置传输列队的长度

muhe221@muhe221-TP:~/Downloads$ ifconfig 
eth0      Link encap:Ethernet  HWaddr b8:88:e3:3b:4e:ff  
          inet addr:192.168.1.102  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::ba88:e3ff:fe3b:4eff/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:314686 errors:0 dropped:4 overruns:0 frame:0
          TX packets:229109 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:434307888 (434.3 MB)  TX bytes:21434725 (21.4 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:8779 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8779 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:716573 (716.5 KB)  TX bytes:716573 (716.5 KB)

wlan0     Link encap:Ethernet  HWaddr 20:68:9d:1b:c4:b6  
          inet addr:192.168.1.103  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2268:9dff:fe1b:c4b6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:220 errors:0 dropped:0 overruns:0 frame:0
          TX packets:134 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:37786 (37.7 KB)  TX bytes:23071 (23.0 KB)

eth0 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是 00:50:56:BF:26:20

inet addr 用来表示网卡的IP地址,此网卡的 IP地址是 192.168.120.204,广播地址, Bcast:192.168.120.255,掩码地址Mask:255.255.255.0 

lo 是 表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如 把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从 知道。

第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)

第二行:网卡的IP地址、子网、掩码

第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节

第四、五行:接收、发送数据包情况统计

第七行:接收、发送数据字节数统计信息。

实例2:启动关闭指定网卡
命令:
ifconfig eth0 up
ifconfig eth0 down

 

实例3:为网卡配置和删除IPv6地址
命令:
ifconfig eth0 add 33ffe:3240:800:1005::2/64
ifconfig eth0 del 33ffe:3240:800:1005::2/64

 

实例4:用ifconfig修改MAC地址
命令:
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE

 

实例6:启用和关闭ARP协议
命令:
ifconfig eth0 arp   // 开启网卡eth0 的arp协议;
ifconfig eth0 -arp   // 关闭网卡eth0 的arp协议;

 

实例7:设置最大传输单元
命令:
ifconfig eth0 mtu 1500

Note: 用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

 ------------------------------------------------------------------------------------------------------------

 

 sudo fdisk -l 查看系统分区信息
muhe221@muhe221-TP:~$ sudo fdisk -l
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x0001e1ab

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   163842047    81817600    7  HPFS/NTFS/exFAT
/dev/sda3       163842048   368642047   102400000    7  HPFS/NTFS/exFAT
/dev/sda4       368644094   625141759   128248833    f  W95 Ext'd (LBA)
Partition 4 does not start on physical sector boundary.
/dev/sda5       368644096   460804095    46080000    7  HPFS/NTFS/exFAT
/dev/sda6       460806144   617623551    78408704   83  Linux
/dev/sda7       617625600   625141759     3758080   82  Linux swap / Solaris
muhe221@muhe221-TP:~$


Useradd 创建一个新的用户uname -a 查看内核版本
cat /etc/issue 查看ubuntu版本
lsusb 查看usb设备
sudo ethtool eth0 查看网卡状态
cat /proc/cpuinfo 查看cpu信息
lshw 查看当前硬件信息
sudo fdisk -l 查看磁盘信息
df -h 查看硬盘剩余空间
free -m 查看当前的内存使用情况
Groupadd 组名 创建一个新的组
Passwd 用户名 为用户创建密码
Passwd -d用户名 删除用户密码也能登陆
Passwd -S用户名 查询账号密码
Usermod -l 新用户名 老用户名 为用户改名
Userdel–r 用户名 删除用户一切

service [servicename] start/stop/restart 系统服务控制操作
tar –jxvf benet.tar.bz2 解压缩
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包

查看目录占用空间
#du -hs 目录名

chrome

muhe221@muhe221-TP:~/Downloads$ sudo dpkg -i google-chrome-stable_current_amd64.deb
..................
Processing triggers for bamfdaemon (0.5.1+14.04.20140409-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Errors were encountered while processing:
 google-chrome-stable
muhe221@muhe221-TP:~/Downloads$ apt-get -f install

-------------------------------

exit是一个函数,进程退出时会有一个值,exit函数的参数就是指明进程退出的返回值,操作系统根据这个值来判断是否是正常退出。一般情况下退出值是0表示正常(exit(0)),其它情况(1~255)都是不正常的。

------------------------------------------------------------------------------

STDIN_FILENO的作用及与stdin 的区别

STDIN_FILENO 是标准输入的文件描述符
详见/usr/include/unistd.h
代码:
/* Standard file descriptors. */
#define STDIN_FILENO 0 /* Standard input. */
#define STDOUT_FILENO 1 /* Standard output. */
#define STDERR_FILENO 2 /* Standard error output. */

层次不一样。
stdin属于标准库处理的输入流,其声明为 FILE 型的,对应的函数前面都有f开头,如fopen/fread/fwrite/fclose 标准库调用等,标准库内封装了系统API调用,如 fread 内部实现调用 read。
STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。
STDIN_FILENO就是标准输入设备(一般是键盘)的文件描述符。
-------------------------------------------------------------------------------

posted @ 2016-01-23 10:22  牧 天  阅读(811)  评论(0)    收藏  举报