linux ssh使用的方法有哪些
时间:2023-05-24 11:56
openssh软件包包含以下命令: sshd ―― ssh服务端程序 ssh最常用的使用方式是代替telnet进行远程登陆。不同于telnet的密码登陆,ssh还同时支持publickey、keybord interactive、gssapi等多种登入方式,不像telnet那样只有输入系统密码一种途径。目前最常用的登陆方式还是传统的password方式和publickey方式登陆。下面以redhat as4为例,举例说明这两种登陆方式的用法。 [root@mail ~]# ssh 172.18.6.227 第一次登陆后,ssh就会把登陆的ssh指纹存放在用户home目录的.ssh目录的know_hosts文件中,如果远程系统重装过系统,ssh指纹已经改变,你需要把 .ssh 目录下的know_hosts中的相应指纹删除,再登陆回答yes,方可登陆。请注意.ssh目录是开头是”.”的隐藏目录,需要ls –a参数才能看到。而且这个目录的权限必须是700,并且用户的home目录也不能给其他用户写权限,否则ssh服务器会拒绝登陆。如果发生不能登陆的问题,请察看服务器上的日志文件/var/log/secure。通常能很快找到不能登陆的原因。 ssh远程执行命令: [root@mail ~]# ssh 172.18.6.227 ls -l / 输入正确的密码后,ssh会链接远程服务器的sshd服务器程序,然后执行远程服务器上的 ssh 172.18.6.227 “cd /root && ls “ ssh的远程实行命令的功能是用来代替原始的r系列命令的,在ssh出现之前系统管理员们不得不用rexec, rsh等不安全的远程执行命令工具来完成同样的操作。这个功能在管理大批机器的时候是非常有用的,比如我要重启10.0.0.0/24网段内所有的服务器,只要输入一条命令: for i in $(seq 1 254) ; do ssh 10.0.0.${i} reboot ; done 就可以完成重启所有服务器的操作,也许你会说,这要虽然不需要再登陆每一台服务器了,但是还是要每次输入密码,多麻烦啊。别急,下面要讲的用ssh public key方式登陆就是要解决问题。 采用public key登录: openssh的ssh-keygen命令用来产生这样的私钥和公钥。 [root@mail ~]# ssh-keygen -b 1024 -t dsa -c gucuiwen@myserver.com 说明: [root@mail ~]# ls -l /root/.ssh 产生的公钥/私钥文件在用户home目录的.ssh目录下,其中id_dsa.pub是公钥,把产生的公钥上传到需要登陆的服务器的对应用户目录的home目录的.ssh目录下,再一次强调用户自己的目录(home目录)必须不能有其他人可写的权限,.ssh目录的权限必须是700,即除了用户自己,其他人没有任何读写察看该目录的权限,否则ssh服务器会拒绝登陆。ssh默认的公钥文件是用户home目录下的.ssh目录下的authorized_keys文件,因此需要把产生的公钥以这个文件名放到服务器的/root/.ssh/目录下,这个文件中可以存放多个客户端的公钥文件,就好比一个大门上可以上很多锁,可以有不同的钥匙来尝试开锁,只要有一个锁被打开了,门就可以打开了。放到服务器上应该是这样子的: 私钥必须是600权限,否则ssh服务器会拒绝用户登陆。 大致就是这个样子了。现把/etc/ssh/ssh_config 和 /etc/ssh/sshd_config的配置说下。 /etc/ssh/ssh_config: forwardagent no forwardx11 no rhostsauthentication no rhostsrsaauthentication no rsaauthentication yes passwordauthentication yes fallbacktorsh no usersh no batchmode no checkhostip yes stricthostkeychecking no identityfile ~/.ssh/identity port 22 cipher blowfish escapechar ~ /etc/ssh/sshd_config: listenaddress 192.168.1.1 hostkey /etc/ssh/ssh_host_key “hostkey”设置包含计算机私人密匙的文件。 serverkeybits 1024 logingracetime 600 keyregenerationinterval 3600 permitrootlogin no ignorerhosts yes ignoreuserknownhosts yes strictmodes yes x11forwarding no printmotd yes syslogfacility auth loglevel info rhostsauthentication no rhostsrsaauthentication no rsaauthentication yes passwordauthentication yes permitemptypasswords no allowusers admin 将ssh2兼容格式的公钥转换成为openssh兼容格式 ssh-keygen -i -f identity.pub >> /root/.ssh/authorized_keys2 以上就是linux ssh使用的方法有哪些的详细内容,更多请关注Gxl网其它相关文章!
sftp-server ―― sftp服务端程序(类似ftp但提供数据加密的一种协议)
scp ―― 非交互式sftp-server的客户端,用来向服务器上传/下载文件
sftp ―― 交互式sftp-server客户端,用法和ftp命令一样。
slogin ―― ssh的别名
ssh ―― ssh协议的客户端程序,用来登入远程系统或远程执行命令
ssh-add ―― ssh代理相关程序,用来向ssh代理添加dsa key
ssh-agent ―― ssh代理程序
ssh-keyscan ―― ssh public key 生成器
the authenticity of host '172.18.6.227 (172.18.6.227)' can't be established.
rsa key fingerprint is 43:80:f2:e1:9b:b6:6e:c0:e2:dd:57:8f:ed:89:b3:81.
are you sure you want to continue connecting (yes/no)? yes
warning: permanently added '172.18.6.227′ (rsa) to the list of known hosts.
root@172.18.6.227‘s password:
last login: thu jul 12 18:47:47 2007 from 172.18.6.130
[root@qmail ~]#
root@172.18.6.227‘s password:
total 1244
drwxr-xr-x 2 root root 4096 jun 26 04:02 bin
drwxr-xr-x 4 root root 4096 mar 29 11:17 boot
drwxr-xr-x 2 root root 4096 jan 25 11:26 command
drwxr-xr-x 15 root root 4096 jun 12 20:09 data
drwxr-xr-x 9 root root 5360 jul 2 13:38 dev
drwxr-xr-x 87 root root 12288 jul 11 04:02 etc
drwxr-xr-x 20 root root 4096 apr 10 10:54 home
drwxr-xr-x 2 root root 4096 aug 13 2004 initrd
ls –l /命令 ,并把输入结果传到本地服务器。相当于你先登陆到远程服务器,然后再实行命令ls –l /,最后再登出服务器。需要提醒的是,如果你需要登陆服务器并执行不止一个命令,必须要把命令用单引号或双引号引起来:
generating public/private dsa key pair.
#提示正在生成,如果选择4096长度,可能需要较长时间
enter file in which to save the key (/root/.ssh/id_dsa):
#询问把公钥和私钥放在那里,回车用默认位置即可
enter passphrase (empty for no passphrase):
#询问输入私钥密语,为了实现自动登陆,应该不要密语,直接回车
enter same passphrase again:
#再次提示输入密语,再次直接回车
your identification has been saved in /root/.ssh/id_dsa.
your public key has been saved in /root/.ssh/id_dsa.pub.
#提示公钥和私钥已经存放在/root/.ssh/目录下
the key fingerprint is:
71:e5:cb:15:d3:8c:05:ed:05:84:85:32:ce:b1:31:ce gucuiwen@myserver.com
#提示key的指纹
-b 1024 采用长度为1024字节的公钥/私钥对,最长4096字节,一般1024或2048就可以了,太长的话加密解密需要的时间也长。
-t dsa 采用dsa加密方式的公钥/私钥对,除了dsa还有rsa方式,rsa方式最短不能小于768字节长度。
-c gucuiwen@myserver.com 对这个公钥/私钥对的一个注释和说明,一般用所有人的邮件代替。可以省略不写,更多其他参数请man ssh-keygen。
total 16
-rw——- 1 root root 668 jul 12 20:07 id_dsa
-rw-r–r– 1 root root 611 jul 12 20:07 id_dsa.pub
-rw-r–r– 1 root root 222 jul 12 19:37 known_hosts
host *
选项“host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。
“forwardagent”设置连接是否经过验证代理(如果存在)转发给远程计算机。
“forwardx11”设置x11连接是否被自动重定向到安全的通道和显示集(display set)。
“rhostsauthentication”设置是否使用基于rhosts的安全验证。
“rhostsrsaauthentication”设置是否使用用rsa算法的基于rhosts的安全验证。
“rsaauthentication”设置是否使用rsa算法进行安全验证。
“passwordauthentication”设置是否使用口令验证。
“fallbacktorsh”设置如果用ssh连接出现错误是否自动使用rsh。
“usersh”设置是否在这台计算机上使用“rlogin/rsh”。
“batchmode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。
“checkhostip”设置ssh是否查看连接到服务器的主机的ip地址以防止dns欺骗。建议设置为“yes”。
“stricthostkeychecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$home/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。
“identityfile”设置从哪个文件读取用户的rsa安全验证标识。
“port”设置连接到远程主机的端口。
“cipher”设置加密用的密码。
“escapechar”设置escape字符。
port 22
“port”设置sshd监听的端口号。
“listenaddress”设置sshd服务器绑定的ip地址。
“serverkeybits”定义服务器密匙的位数。
“logingracetime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。
“keyregenerationinterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。
“permitrootlogin”设置root能不能用ssh登录。这个选项一定不要设成“yes”。
“ignorerhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。
“ignoreuserknownhosts”设置ssh daemon是否在进行rhostsrsaauthentication安全验证的时候忽略用户的“$home/.ssh/known_hosts”
“strictmodes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。
“x11forwarding”设置是否允许x11转发。
“printmotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。
“syslogfacility”设置在记录来自sshd的消息的时候,是否给出“facility code”。
“loglevel”设置记录sshd日志消息的层次。info是一个好的选择。查看sshd的man帮助页,已获取更多的信息。
“rhostsauthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。
“rhostsrsa”设置是否允许用rhosts或“/etc/hosts.equiv”加上rsa进行安全验证。
“rsaauthentication”设置是否允许只有rsa安全验证。
“passwordauthentication”设置是否允许口令验证。
“permitemptypasswords”设置是否允许用口令为空的帐号登录。
“allowusers”的后面可以跟着任意的数量的用户名的匹配串(patterns)或user@host这样的匹配串,这些字符串用空格隔开。主机名可以是dns名或ip地址。