shell,bash,git bash,xshell,ssh

一:shell是linux/unix系统的外壳,也可以理解为命令行接口,就是你输入并执行命令行的地方.bash(born again shell)是shell的一种,最常用的shell之一。你在你的linux上运行: ps | grep $$;如果运行结果为bash,就说明当前默认shell是bash.

Shell基本上是一个命令解释器,类似于DOS下的command。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。二:
Xshell windows平台下的一个强大的安全终端模拟软件。Xshell和shell没有关系,Xshell是windows下ssh连接的工具,同类软件还有secure-CRT,putty等。linux下如ubuntu已经内置了ssh连接工具ssh-agent。三:http://code.google.com/p/msysgit/git bash是Windows下的命令行工具。[【自己理解:git bash是windows下的一个小型linux系统,里面也内置了ssh连接工具】]基于msys GNU环境,有git分布式版本控制工具,也主要用于git。

GNU环境,就是说如果你喜欢linux/unix的环境,就可以选择使用git bash。里面有你熟悉的linux工具,tar,grep,awk等,且可以安装编译环境gcc,make等。

可以参考msys:http://baike.baidu.com/view/371287.htmmingw:http://baike.baidu.com/view/98554.htmmsysgit:http://code.google.com/p/msysgit/四:一篇好文章http://www.111cn.net/sys/linux/55152.htm

Linux实现利用SSH远程登录服务器详解

www.111cn.net 编辑:kp12345 来源:转载

在linux中登录服务器有telnet和ssh两种方式,下面我来介绍ubuntu中内置的ssh登录服务器的方法,目前最安全远程连接服务器也是使用ssh了

远程登录方式有telnet和ssh两种方式,由于telnet使用的是明文传输,传输过程中系统帐号密码等重要信息容易被截获,安全性比不上SSH(secure shell),因此现在一般都使用SSH作为远程登录的工具。

其实很多linux版本如ubuntu已经内置了ssh-agent,这是一个远程连接的工具,通过ssh-agent可以发起远程连接,但是如果你要想实现在其他电脑远程登录自己的电脑,就必须安装openssh,可以通过以下命令
ubuntu

 代码如下 复制代码
sudo apt-get install openssh

ArchLinux

 代码如下 复制代码
sudo pacman -S openssh

系统会自动下载并完成安装,完成后可通过以下命令查看ssh服务是否启动

 代码如下 复制代码
ps -ef | grep sshd

如果没有sshd这个进程,手动启动
ubuntu

 代码如下 复制代码
sudo /etc/init.d/ssh start

ArchLinux

 代码如下 复制代码
sudo /etc/rc.d/sshd start

ArchLinux把sshd添加到DAEMONS数组开机启动

DAEMONS=(syslog-ng network crond dbus alsa @openntpd sshd)
如果出现sshd进程,表示ssh服务已经启动,此时不出意外你在其他电脑上就可以通过ssh连接到自己的电脑上面了。关于ssh连接的工具,windows平台上面推荐Secure-CRT软件,这是一个非常受欢迎的软件,使用也比较简单。也可以选择Putty,不过建议下载官方英文版,前段时间汉化版的putty有后门的事在网上炒得沸沸扬扬。Linux系统因为已经自带ssh-agent所以比较方便,直接在terminal里面输入以下命令

ssh [email protected]
username是你的登录账户,ip即ip地址,当然你也可以使用域名

ssh [email protected]
此时系统会要求你输入密码进行验证,验证通过就能登录到远程主机.为了安全起见,需要进行一些简单的配置,否则日后查看ssh日志文件的时候会发现大量ip的登录失败信息。其实是别人通过端口扫描软件扫描出开启来22(ssh默认)端口的主机,然后通过穷举法进行密码猜解,如果你使用的是弱口令,被猜解出的几率是非常高的。

配置文件路径

ubuntu

 代码如下 复制代码
/etc/ssh/ssh.conf

Archlinux

 代码如下 复制代码
/etc/ssh/sshd.config

我们可以通过编辑这个文件来进行配置。当你尝试登录别人的主机的时候你会以什么身份登录?当然是root用户,因为root是每个Linux系统都存在的用户。因此我们应该禁用root用户登录,找到

 代码如下 复制代码
PermitRootLogin yes

把yes改为no即可。

端口扫描软件默认扫描22端口,因此我们也可以把端口改成其他端口,找到以下语句

port 22
把其中的22改成你其他端口,比如1022之类的。

限制一下最大密码错误次数,3次吧,自己登录基本不会连续错3次,密码错误超过3次拒绝登录

MaxAuthTries 3
修改之后保存退出,重启ssh服务

ubuntu

 代码如下 复制代码
sudo /etc/init.d/ssh restart

ArchLinux

 代码如下 复制代码
sudo /etc/rc.d/sshd restart

注意,修改了端口之后用CLI模式登录时需要声明端口

 代码如下 复制代码
ssh -p 1022 [email protected]

通过简单的配置后你会发现来自不明ip的失败登录明显的减少。忘了说,ssh登录日志保存在这个文件

 代码如下 复制代码
/var/log/auth.log

在Archlinux下这个文件的拥有者为root,群组为log,权限为640,为了方便普通用户查看日志,把用户加入到log组(不推荐others加权限)

 代码如下 复制代码
sudo gpasswd -a song log

平时可以cat一下这个文件看看登录记录,当然有时文件会比较长,特别是没禁用root用户之前,往往来自同一个ip的登录失败次数达到数千条,如果你一行行查看得看到什么时候,因此我们只输出root登录失败的记录(虽然禁用root登录,但有人尝试以root身份登录时系统仍会记录)

 代码如下 复制代码
grep "Failed password for root" /var/log/auth.log | awk {‘print $11‘} | uniq -c | sort -rn

系统会列出曾经登录失败的ip并且统计失败次数从高到底排列,当然你也可以输入登录成功的记录

 代码如下 复制代码
grep "Accepted password for " /var/log/auth.log

系统会列出曾经登录主机的记录,包括时间、ip地址等

另外,本人使用的是Android的手机,使用的是Linux的内核,所以希望也能从手机远程登录自己的电脑。首先,手机上安装支持ssh连接的软件,Cyanogenmod7版本的系统就自带一个Terminal,简直就是一个微型的linux终端,基本上很多基本的指令都能执行,比如:ls,cd,mount,cat,nano等等。接下来还有一个问题,我使用的是电信的ADSL,通过TP-link路由器pppoe拨号上网,每次拨号获取的ip都不一样,这样是无法ssh登录的,因为你不知道下一次获取的ip地址是多少。于是想到了windows下的花生壳客户端,可以动态解析域名,赶紧到花生壳网站申请了一个免费域名,不过当时还没发布linux的客户端(现在有源码安装),隐约好像记得TP-link有动态DNS功能,登录上去果不其然,在动态DNS的服务提供者选花生壳,账户密码就填花生壳网站的账户密码,登录之后就会把花生壳帐号绑定的域名解析到本地,但是当你通过域名ssh连接的时候发现是连接不上的,因为拨号上网的是路由器,花生壳会把域名解析到你的路由器,而不是你的电脑,因此还要做进一步设置。在TP-link路由器设置页面的转发规则里选DMZ主机,把DMZ状态设置启用,DMZ主机ip地址填你从路由器DHCP服务器获得ip,如果你的路由器比较多人上网可能每次从DHCP获得的ip也是不一样的,所以要把你的主机mac地址和某一个ip地址绑定,也就是把某一个ip地址保留给你的网卡,让你每次获取的都是同一个ip,把这个ip地址填到DMZ主机ip地址里面。再用域名来ssh连接发现已经可以正常链接了。

最后放上几张手机远程登录主机成功后的截图

welcome to ubuntu

root目录

ll 查看文件属性

 
时间: 2024-10-15 05:14:39

shell,bash,git bash,xshell,ssh的相关文章

Windows Git Bash命令行下创建git仓库并更新到github

大二的时候就听过老师说有一个叫git的版本管理工具,当时只是听老师说说而已,也没有去使用它,因为当时用过svn,就感觉自己没多少东西需要git管理. 最近几天,我经常在开源中国看别人的帖子,看到别人对git和github这个平台评价如此之高,于是我就下载了一个windows版本的git bash, 一开始使用就被它的速度和实用所折服,于是在我的虚拟Centos 7上也装上了git ,现在我主要利用它帮助我管理一些繁琐的小代码,git这样的工具的魅力还需要我慢慢体会. 现在我就记录一下我在Wind

使用Git Bash生成新的ssh key

使用Git Bash生成新的ssh key. $ cd ~  ///保证当前路径在"~"下 $ ssh-keygen -t rsa -C "你的邮箱地址"  ///建议填写自己真实有效的邮箱地址 结果: Enter file in which to save the key (/c/Users/xxxx_000/.ssh/id_rsa):   ///不填直接回车 Enter passphrase (empty for no passphrase):   ///输入密

windows下运用git bash 通过ssh方式连接到git server

在windows下进行项目开发,使用git,通过ssh方式与git库连接,而ssh方式用public key实现连接. 首先需要下载mygit,安装后使用git bash.git bash(有GUI界面,如安装TortoiseGit后就可以使用).我主要使用命令行,其命令行系统类似linux环境的基本操作命令,可以直接看到c:,如cd /d/mygitwork,进入我的D盘下的工程目录,放置开发的工程. 我的操作:在windows的git bash中用ssh -keygen ssh -keyge

git bash配置SSH远程连接阿里云ECS

1.添加安全组规则 2.使用GitHub的话本地都会有id_rsa.pub(公钥),id_rsa(私钥),一般保存在C盘用户目录下.ssh文件. 把公钥内容复制下来(ssh-rsa ....) 3.运行git bash 输入命令:ssh [email protected]公网IP地址 按照提示输入密码 输入命令:cd /root/.ssh 输入命令:vim authorized_keys 若原来已经有内容了,就另起一行,把前面复制的公钥粘贴进去 若没有内容,则直接粘贴进去 :wq保存并退出 输入

Github Git Bash/SSH Key基本配置

1.首先需要下载一个连接Github的客户端:Git for windows,并且在https://github.com/注册.安装好后打开Git Bash 然后分别输入: git config --global user.name "your name"    (github上注册的用户名) git config --global user.email "your email address"  (github上注册的邮箱) 2.生成SSH密钥: Git Bash

GIT---看我一步步入门(Windows Git Bash)

0 前言 不同的版本控制工具的比较这里就不介绍了,我的入门是从windows开始的,而且是使用纯命令方式(Git Bash),当然也可以结合TortoiseGit或者msysgit中的GIT Gui工具,这个工具可以通过界面方式来操作管理. 我们要管理项目,首先要建立一个GIT服务器系统,来管理项目版本.但是有的条件有限,我们搞不起服务器,只能借助第三方了,github就是很好的选择,它是一个网站,已经部署好了GIT系统,我们只需要注册个账号,然后就可以免费当我们的GIT服务器了,作为开发项目托

Windows 环境下配置 git bash 的 HOME 默认路径

0.引 在 windows 下安装 git 之后, git 默认的HOME和~路径一般都是C:\Users\用户名,每次得用命令切换到常用的Repository下,此操作重复而没有意义.为了修改默认路径,有两种方法:(1)修改Git/etc/profile相关参数:(2)按Windows的方式,即创建环境变量,Home,然后设置路径. 1. 修改profile相关参数 (1)针对 git version 1.x 适用 笔者以 git version 1.9.5.msysgit.1 为例. 打开

Git笔记之使用git Bash的命令集

首先,吃水不忘挖井人,感谢linux创始人林纳斯托瓦兹(Linus Torvalds)在2005年开发了Git版本控制系统. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便.而且速度很快.Git 最为出色的是它的合并跟踪(merge tracing)能力. Git Bash Here 0.Dash命令格式 命令 [-options] [参数] $ 可选 文件 bash 常见命令

Windows平台使用git bash管理github中的工程

1.安装git bash msysgit(http://code.google.com/p/msysgit/) 2.创建SSH key 右键点击目录, ssh-keygen.exe -C "[email protected]" -t rsa 生成的key存放位置: SSH key的原理: 3.拷贝公钥到github 测试一下公钥是否可用 ssh -T [email protected] 4.从github拷出你的代码 拷出 $git clone git://github.com/sch