ssh远程连接服务器 脚本文件 【软连接】

ssh远程连接服务器 脚本文件 【软连接】,第1张

一个使用expect免输入密码自动登录ssh的shell脚本,方便好用,适用Mac、Linux

来自:https://githubcom/jiangxianli/SSHAutoLogin

1、ssh_loginsh

2、给ssh_loginsh文件执行的权限

3、配置服务器脚本文件 软连接

4、命令使用

服务器登录

选择序列号:1、2、3

5、删除服务器脚本文件 软连接

ln参数释义

1.命令格式:

 ln [参数][源文件或目录][目标文件或目录]

2.命令参数:

必要参数:

-b 删除,覆盖以前建立的链接

-d 允许超级用户制作目录的硬链接

-f 强制执行

-i 交互模式,文件存在则提示用户是否覆盖

-n 把符号链接视为一般目录

-s 软链接(符号链接)

-v 显示详细的处理过程

选择参数:

-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”

-V “-V<备份方式>”或“--version-control=<备份方式>”

--help 显示帮助信息

--version 显示版本信息

本地和远程服务器都创建

在创建密钥的时候,可以定义加密类型和长度,具体可以参考ssh-keygen命令帮助。创建的过程中,首先会提示你 保存的位置 和 文件名 ,再提示你 给密钥加个密码 ,也可以直接回车不要密码。

公钥和私钥默认保存这用户目录的 /ssh/ 文件夹下。默认情况下, id_rsa 为私钥, id_rsapub 为公钥。

此时 还是需要用用户名和密码登录远程Linux服务器。使用vi编辑 /etc/ssh/sshd_config 文件,先打开 PubkeyAuthentication 和 PermitRootLogin ,一般只要把这几个参数前面的#(注释符)删掉即可。

重启ssh服务

在macOS端操作以下命令,把公钥上传到远程服务器,会提示输入远程的Linux服务器的密码。

在远程Linux服务器上,操作以下命令,把公钥 追加 到服务器ssh认证文件中:

如果没有 authorized_keys 这个文件,请到 ssh 文件夹下创建一个,并把权限设置为600。

追加好后,如果要禁止用户名密码登录,再编辑 /etc/ssh/sshd_config 文件,把 PasswordAuthentication 设置为no。

重启SSH服务(每次修改ssh配置都需要重启)

如果没有设置密钥密码,直接这终端输入 ssh root@IP 即可登录远程服务器。如果该用户下没有公钥,则会提示Permission denied。

1、生成SSH Keys

打开terminal执行如下命令:

ssh-keygen -t rsa -b 40961

然后再执行

cd ~/sshvi dodan200@163compub (拷贝其所有内容)123

2、将生成的SSH key拷贝添加到vultr的ssh中

将ssh key添加 

3、打开terminal用命令连接远程服务器

ssh root@4532160253 -p 22输入完密码,连接成功。123

4、 温馨推荐:在mac上操作服务器中的文件的软件中“FileZilla”是一款挺好用的软件。 

附上一张配置:

5、修改root密码

[root@localhost ~]# passwd Changing password for user root

New password:

Retype new password:

passwd: all authentication tokens updated successfully

1 ssh简介以及本例的应用场景

① ssh的简介

SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。

② 本例的应用场景

用户在client(Linux)上通过ssh远程执行server(Windows)上的命令,比如c:\testbat

注:Linux版自带ssh Server且默认启动,具体设置方法请参见google。

2 ssh服务器的安装(Windows)

ssh服务器软件有许多中,我们这里使用的是免费的freeSSHd。

① 首先从官方站点下载软件并安装(http://wwwfreesshdcom/)

② 安装完成后进入配置界面(Server Status),确认SSH server正在运行状态

③ 进入Users界面,设定一个访问的用户账户(比如xut)

这里我们建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,我们选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。

④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)

此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等),此处不再介绍。

注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。

3 ssh客户端的设置(Linux)

由于我们的客户端采用的是Linux,所以不用安装客户端软件,系统自带的就有。

我们需要在Linux上创建一个共有和私有的密钥对,私有密钥放到客户端(Linux)上,共有密钥放到服务器端(Windows)上。在Linux上通过ssh-keygen命令来创建。

[root@localhost ~]# ssh-keygen -t rsa

Generating public/private rsa key pair

Enter file in which to save the key (/root/ssh/id_rsa): [直接回车]

Enter passphrase (empty for no passphrase): [直接回车]

Enter same passphrase again: [直接回车]

Your identification has been saved in /root/ssh/id_rsa

Your public key has been saved in /root/ssh/id_rsapub

The key fingerprint is:

4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53

其中,/root/ssh/id_rsa为私有密钥,/root/ssh/id_rsapub为共有的密钥。

此时,需要把共有密钥放到服务器端(Windows)进行保存,以便于服务器端进行安全检查。

我们通过认证界面找到存放共有密钥的地址(Public key folder)。

如上图所示,然后在c:\Program Files\freeSSHd目录下创建以登录用户名为名字的文本文件,此处举例为xut文件。并将/root/ssh/id_rsapub文件中的内容拷贝到c:\Program Files\freeSSHd\xut文件中。

至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。

ssh xut@17228xxxxx "c:\testbat"

这条命令将执行服务器端的C盘下的testbat文件,并把结果返回,整个操作不需输入密码。

4 ssh客户端的设置(Windows)

由于Windows不附带ssh的客户端和服务器端,我们这里找一个免费的客户端软件PuTTY。

PuttY主页:http://wwwchiarkgreenendorguk/~sgtatham/putty/

各种客户端的比较:http://enwikipediaorg/wiki/Comparison_of_SSH_clients

在Putty主页,我们下载puttyzip(含除了PuTTYtel以外的所有文件),然后解压会发现一个叫plinkexe的文件,这就是我们的ssh客户端命令行软件。

我们首先要成一个共有和私有的密钥对,使用puttyzip中附带的PUTTYGENexe生成。

启动PUTTYGENexe后可以见到下图界面,点击[Generate]即可生成所需密钥对。

注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将保持不变。

鼠标在这里不停移动

密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没有passphrase选择忽略即可。假设我们这里把私钥保存为pri_keyppk。

我们把公钥放在freeSSHd端(ssh服务器端)进行保存,具体保存方法参见ssh客户端的设置(Linux)。

在Windows客户端,执行如下命令进行ssh连接,并不需要输入密码即可通过密钥进行自动认证。

plink -i pri_keyppk xut@17228xxxxx c:\testbat

(此时将执行服务器端的c:\testbat脚本。)

注:第一次连接时将出现“The server's host key is not cached in the registry…

ssh连不上linux虚拟机Cmd能连?

ssh连不上Linux虚拟机cmd能ping通,说明网路没有问题,ssh连接不上需要配置ssh密钥

两台Linux服务器,ssh代理上网配置?

A服务器配置两块网卡,其中一块网卡配置接入外网,一块网卡配置接入内网,而B服务器就接入在与A在同一网络的内网上,在A服务器上通过squid配置透明代理就可以,同时做iptables数据转发处理,B服务器的网关需要配置为服务器A的内网口IP地址,这些都可以通过命令行完成。

ssh有几种连接方法?

Linux系统实现SSH连接的3种方式:

方式一:密码登入,原理:执行远程连接命令并输入账号密码。

方式二:公钥登入(免密登入),原理:注入公钥到服务端,表示拥有该公钥的客户端可以免密登入。

方式三:秘钥文件登入,原理:客户端每次登入时携带服务端秘钥来登入。

linux下如何使用ssh远程登录主机,执行shell脚本?

linux主机登录另外一台linux服务器,直接在命令行提示符下输入:ssh账号@IP地址即可比如:sshoracle@1921681013然后按照提示输入密码一切无误则进入该远程主机

  一、配置openssh服务器

  

  1、ssh的配置文件是/etc/ssh/ssh_config,一般不要修改!

  2、启动服务器!

  #ntsysv =>确认将sshd前面的勾已打上!

  3、手工启动OpenSSH:

  #service sshd start

  #service sshd restart(重新启动)

  4、停止服务器:

  #service sshd stop

  

  二、使用OpenSSH客户端

  

  Redhat linux 9默认已安装了OpenSSH的客户端,客户端和服务器连接时,可以使用两种验证方式:基于口令的验证方式和基于密匙的验证方式!

  1、基于口令的验证方式

  这种验证方式要求用户输入用户名称和密码!若没有指定用户名称和密码,则默认使用当前在客户机上的用户名!

  

  例1:直接登陆

  [root@wljs /]#ssh 2104516017

  则登陆用户名为客户机当前用户名!

  例2:指定用户名登陆

  [root@wljs /]#ssh wwz@2104516017

  或: [root@wljs /]#ssh –l wwz 2104516017

  上面过程结束后,系统将会提示你输入用户名和密码!

  

  2、基于密匙的验证方式

  使用密匙的验证方式,用户先需要为自己创建一对密匙:公匙和私匙。(公匙用在要登陆的服务器上)

  OpenSSH公开密匙的密码体制有RSA、DSA!

  创建密匙:

  例:[root@wljs /]#ssh-keygen –t rsa

  回车后,要求输入使用密匙时的口令!这样便生成了公匙和私匙:放在用户主目录下的ssh目录下,文件名:id_rsapub和id_rsa!必须将公匙复制到登陆的服务器的~/ssh/目录下,并改名为:authorized_keys!然后,便可使用密匙方式登陆!

  #ssh [–l username] ip地址或主机名

  

  三、OpenSSH上常用的命令

  

  1、不登陆远程系统使用命令

  #ssh 2104516017 [命令] [参数]

  2、本地系统和远程系统间文件的传输

  #scp atxt root@2104516017:/btxt

  #scp root@2104516017:/btxt /ctxt

  3、sftp命令

  Sftp 命令和ftp命令类似,它是OpenSSH提供的网络传输文件的小工具,它更加安全,使用和ftp相似的命令:主要有如下几个:

  1、登陆

  #ftp 2104516017

  2、ftp 会话的打开与关闭

  打开:open 2104516027

  关闭:close

  3、文件的传输

  从ftp服务器上得到文件:

  Get atxt

  向ftp上放文件

  Put atxt

  4、退出ftp

  Bye

  5、其他

  bell:每个命令执行完毕后计算机响铃一次

  Cd ,ls 等一些常见命令也可以在ftp服务器目录中使用!

默认配置

Windows下有很多SSH工具。在这里我是用的是Putty。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH连接服务器的命令如下:

ssh IP地址1

一般来说为了安全性考虑,端口号等一些参数并不会使用默认值。这样的话命令就变成这样:

ssh 用户名@IP地址 -p 端口号1

如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。

密钥登录

每次登录SH都需要输入密码很麻烦,而且可能不太安全。SSH还能使用另外一种登录方式,也就是使用密钥登录。这种登录方式需要客户端生成一堆公钥私钥对,然后将公钥添加到服务器中,这样下次就可以直接登录了。

首先生成SSH密钥,依照提示输入信息即可。默认生成在用户主目录中的ssh文件夹中。带pub的是公钥,接下来需要添加到服务器中。

ssh-keygen1

然后将本地公钥添加到服务器中,需要使用另一个命令:

scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径1

然后登陆服务器,找到复制进去的公钥,将公钥名字改为authorized_keys并添加到对应的ssh文件夹中。然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。

SSH(secure shell)用于远程和服务器交互

Ubuntu Server默认安装了OpenSSH Server,可通过端口22连接

SSH客户端可以用用户名密码的方式连接服务器,也可以用密钥对的方式连接服务器。

可以使用SSH客户端工具PuTTY,windows10自带的SSH工具,或者VMWare的SSH工具连接服务器

1在命令行用 用户名和密码连接

ssh username@serveraddress

2SSH客户端还可以用 密码对 (公钥和私钥)连接

这里使用Win10自带的工具

生成密钥对

运行命令:ssh-keygen

添加公钥

打开生成的公钥文件id_rsapub,复制全部内容

使用SSH密码登录的方式登录Ubuntu服务器,在当前用户目录创建文件夹ssh,进入ssh文件夹并创建文件authorized_keys,粘贴从公钥复制的内容并保存文件

修改SSH配置

修改Ubuntu Server的文件:

/etc/ssh/sshd_config

将PubkeyAuthentication yes前面的注释去掉

运行命令重启sshd服务

sudo systemctl restart sshd

退出SSH连接,重新用私钥登录登录

ssh <username>@<serveraddress> -i <私钥路径>

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » ssh远程连接服务器 脚本文件 【软连接】

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情