分类 技术 下的文章

在大多数情况下,Linux 系统管理员使用 SSH 登录到程 Linux 服务器时,要么是通过密码,要么是无密码 SSH 登录或基于密钥的 SSH 身份验证。

如果你想自动在 SSH 登录提示符中提供密码用户名怎么办?这时 sshpass 就可以帮到你了。

sshpass 是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证),这样就可以通过 cron 调度器执行自动化的 shell 脚本进行备份。

ssh 直接使用 TTY 访问,以确保密码是用户键盘输入的。 sshpass 在专门的 tty 中运行 ssh,以误导 ssh 相信它是从用户接收到的密码。

重要:使用 sshpass 是最不安全的,因为所有系统上的用户在命令行中通过简单的 “ps” 命令就可看到密码。因此,如果必要,比如说在生产环境,我强烈建议使用 SSH 无密码身份验证

在 Linux 中安装 sshpass

在基于 RedHat/CentOS 的系统中,首先需要启用 EPEL 仓库并使用 yum 命令安装它。

# yum install sshpass
# dnf install sshpass    [Fedora 22 及以上版本]

在 Debian/Ubuntu 和它的衍生版中,你可以使用 apt-get 命令来安装。

$ sudo apt-get install sshpass

另外,你也可以从最新的源码安装 sshpass,首先下载源码并从 tar 文件中解压出内容:

$ wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
$ tar -xvf sshpass.tar.gz
$ cd sshpass-1.06
$ ./configure
# sudo make install 

如何在 Linux 中使用 sshpass

sshpassssh 一起使用,使用下面的命令可以查看 sshpass 的使用选项的完整描述:

$ sshpass -h

下面为显示的 sshpass 帮助内容:

Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
-f filename   Take password to use from file
-d number     Use number as file descriptor for getting password
-p password   Provide password as argument (security unwise)
-e            Password is passed as env-var "SSHPASS"
With no parameters - password will be taken from stdin
-h            Show help (this screen)
-V            Print version information
At most one of -f, -d, -p or -e should be used

正如我之前提到的,sshpass 在用于脚本时才更可靠及更有用,请看下面的示例命令。

使用用户名和密码登录到远程 Linux ssh 服务器(10.42.0.1),并检查文件系统磁盘使用情况,如图所示。

$ sshpass -p 'my_pass_here' ssh [email protected] 'df -h' 

重要提示:此处,在命令行中提供了密码,这是不安全的,不建议使用此选项。

sshpass - Linux Remote Login via SSH

sshpass – 使用 SSH 远程登录 Linux

但是,为了防止在屏幕上显示密码,可以使用 -e 标志,并将密码作为 SSHPASS 环境变量的值输入,如下所示:

$ export SSHPASS='my_pass_here'
$ echo $SSHPASS
$ sshpass -e ssh [email protected] 'df -h' 

sshpass - Hide Password in Prompt

sshpass – 在终端中隐藏密码

注意:在上面的示例中,SSHPASS 环境变量仅用于临时目的,并将在重新启动后删除。

要永久设置 SSHPASS 环境变量,打开 /etc/profile 文件,并在文件开头输入 export 语句:

export SSHPASS='my_pass_here'

保存文件并退出,接着运行下面的命令使更改生效:

$ source /etc/profile 

另外,也可以使用 -f 标志,并把密码放在一个文件中。 这样,您可以从文件中读取密码,如下所示:

$ sshpass -f password_filename ssh [email protected] 'df -h'

sshpass - Supply Password File to Login

sshpass – 在登录时提供密码文件

你也可以使用 sshpass 通过 scp 传输文件或者 rsync 备份/同步文件,如下所示:

------- Transfer Files Using SCP ------- 
$ scp -r /var/www/html/example.com --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/var/www/html
------- Backup or Sync Files Using Rsync -------
$ rsync --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/data/backup/ /backup/

更多的用法,建议阅读 sshpass 的 man 页面,输入:

$ man sshpass

在本文中,我们解释了 sshpass 是一个非交互式密码验证的简单工具。 虽然这个工具可能是有帮助的,但还是强烈建议使用更安全的 ssh 公钥认证机制。

请在下面的评论栏写下任何问题或评论,以便可以进一步讨论。


作者简介:Aaron Kili 是一位 Linux 和 F.O.S.S 爱好者,未来的 Linux 系统管理员,web 开发人员, 还是 TecMint 原创作者,热爱电脑工作,并乐于分享知识。


via: http://www.tecmint.com/sshpass-non-interactive-ssh-login-shell-script-ssh-password/

作者:Aaron Kili 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

在先前的两篇 Inkscape 的文章中,我们已经介绍了 Inkscape 的基本使用、创建对象以及一些基本操作和如何修改颜色。

在接下来的介绍中,我们会集合这些新的技巧,并且创建我们的第一个作品 —— 一张简单的壁纸。

更改文档大小

回顾先前的教程时,你可能会注意到主画板上的默认文档尺寸是一个黑色边框的矩形。Inkscape 中默认文档的大小是 A4 纸大小:

对于这张壁纸而言,我们会将尺寸改为 1024px x 768px。要改变文档的尺寸,进入File > Document Properties...。在 文档属性 Document Properties 对话框中 自定义文档大小 Custom Size 区域中输入宽度为 1024,高度为 768 ,单位是 px

页面上文档的轮廓大概像这样:

绘画背景

接下来,我们会画一个和文档一样大的矩形。因此选择 矩形工具 rectangle tool 来画一个矩形,并使用 工具控制栏 Tools Control bar 来调整矩形的大小。

接着在矩形中添加一个 渐变填充 Gradient Fill 。如果你需要复习添加渐变,请阅读先前添加色彩的那篇文章

你的矩形也可以设置轮廓颜色。 使用 填充和轮廓 Fill and Stroke 对话框将轮廓设置为 none

绘制图样

接下来我们画一个三角形,使用 3 个顶点的星型/多边形工具。你可以按住 CTRL 键给三角形一个角度并使之对称。

选中三角形并按下 CTRL+D 来复制它(复制的图形会覆盖在原来图形的上面),因此在复制后确保将它移动到别处。

如图选中一个三角形,进入Object > FLIP-HORIZONTAL(水平翻转)。

为这三个三角形重新着色。让它看上去和背景和谐。

选中所有的三角形并复制,以填充你的样式:

导出背景

最后,我们需要将我们的文档导出为 PNG 文件。点击 File > EXPORT PNG,打开导出对话框,选择文件位置和名字,确保选中的是 Drawing 标签,并点击 EXPORT

不要让工具成为你想象力的障碍。来制作美丽的壁纸并提交你的设计到 FEDORA 25 壁纸上来吧。你的设计或许会幸运地被选中成为上千万用户的壁纸。下面是用 Inkscape 和上面提到的技术制作的一些壁纸示例:


via: https://fedoramagazine.org/inkscape-design-imagination/

作者:a2batic 译者:geekpi 校对:jasminepeng

本文由 LCTT 组织编译,Linux中国 荣誉推出

如我们前面两篇文章(使用 mod\_rewrite 执行内部重定向基于浏览器来显示自定义内容)中提到的,在本文中,我们将解释如何在 Apache 中使用 mod\_rewrite 模块重定向对已移动到另外一台服务器上的资源的访问。

假设你正在重新设计公司的网站。你已决定将内容和样式(HTML文件、JavaScript 和 CSS)存储在一个服务器上,将文档存储在另一个服务器上 - 这样可能会更稳健。

建议阅读: 5 个提高 Apache Web 服务器性能的提示

但是,你希望这个更改对用户是透明的,以便他们仍然能够通过之前的网址访问文档。

在下面的例子中,名为 assets.pdf 的文件已从 192.168.0.100(主机名:web)中的 /var/www/html 移动到192.168.0.101(主机名:web2)中的相同位置。

为了让用户在浏览到 192.168.0.100/assets.pdf 时可以访问到此文件,请打开 192.168.0.100 上的 Apache 配置文件并添加以下重写规则(或者也可以将以下规则添加到 .htaccess 文件)中:

RewriteRule "^(/assets\.pdf$)" "http://192.168.0.101$1"  [R,L]

其中 $1 占位符,代表与括号中的正则表达式匹配的任何内容。

现在保存更改,不要忘记重新启动 Apache,让我们看看当我们打开 192.168.0.100/assets.pdf,尝试访问 assets.pdf 时会发生什么:

建议阅读: 25 个有用的网站 .htaccess 技巧

在下面我们就可以看到,为 192.168.0.100 上的 assets.pdf 所做的请求实际上是由 192.168.0.101处理的。

# tail -n 1 /var/log/apache2/access.log

Check Apache Logs

检查 Apache 日志

在本文中,我们讨论了如何对已移动到其他服务器的资源进行重定向。 总而言之,我强烈建议你看看 mod\_rewrite 指南和 Apache 重定向指南,以供将来参考。

一如既往那样,如果您对本文有任何疑虑,请随时使用下面的评论栏回复。 我们期待你的回音!


作者简介:Gabriel Cánepa 是来自阿根廷圣路易斯 Villa Mercedes 的 GNU/Linux 系统管理员和 Web 开发人员。 他在一家全球领先的消费品公司工作,非常高兴使用 FOSS 工具来提高他日常工作领域的生产力。


via: http://www.tecmint.com/redirect-website-url-from-one-server-to-different-server/

作者:Gabriel Cánepa 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

inkscape-addingcolour

在我们先前的 Inkscape 文章中,我们介绍了 Inkscape 的基础 - 安装,以及如何创建基本形状及操作它们。我们还介绍了使用 Palette 更改 inkscape 对象的颜色。 虽然 Palette 对于从预定义列表快速更改对象颜色非常有用,但大多数情况下,你需要更好地控制对象的颜色。这时我们使用 Inkscape 中最重要的对话框之一 - 填充和轮廓 Fill and Stroke 对话框。

关于文章中的动画的说明:动画中的一些颜色看起来有条纹。这只是动画创建导致的。当你在 Inkscape 尝试时,你会看到很好的平滑渐变的颜色。

使用 Fill/Stroke 对话框

要在 Inkscape 中打开 “Fill and Stroke” 对话框,请从主菜单中选择 Object>Fill and Stroke。打开后,此对话框中的三个选项卡允许你检查和更改当前选定对象的填充颜色、描边颜色和描边样式。

open-fillstroke

在 Inkscape 中,Fill 用来给予对象主体颜色。对象的轮廓是你的对象的可选择外框,可在 轮廓样式 Stroke style 选项卡中进行配置,它允许您更改轮廓的粗细,创建虚线轮廓或为轮廓添加圆角。 在下面的动画中,我会改变星形的填充颜色,然后改变轮廓颜色,并调整轮廓的粗细:

using-fillstroke

添加并编辑渐变效果

对象的填充(或者轮廓)也可以是渐变的。要从 “Fill and Stroke” 对话框快速设置渐变填充,请先选择 “Fill” 选项卡,然后选择 线性渐变 linear gradient 选项:

create-gradient

要进一步编辑我们的渐变,我们需要使用专门的 渐变工具 Gradient Tool 。 从工具栏中选择“Gradient Tool”,会有一些渐变编辑锚点出现在你选择的形状上。 移动锚点将改变渐变的位置。 如果你单击一个锚点,您还可以在“Fill and Stroke”对话框中更改该锚点的颜色。 要在渐变中添加新的锚点,请双击连接锚点的线,然后会出现一个新的锚点。

editing-gradient


这篇文章介绍了在 Inkscape 图纸中添加一些颜色和渐变的基础知识。 “Fill and Stroke” 对话框还有许多其他选项可供探索,如图案填充、不同的渐变样式和许多不同的轮廓样式。另外,查看 工具控制栏 Tools control bar Gradient Tool 中的其他选项,看看如何以不同的方式调整渐变。


作者简介:Ryan 是一名 Fedora 设计师。他使用 Fedora Workstation 作为他的主要桌面,还有来自 Libre Graphics 世界的最好的工具,尤其是矢量图形编辑器 Inkscape。


via: https://fedoramagazine.org/inkscape-adding-colour/

作者:Ryan Lerch 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 Linux 或者类 Unix 中,我该如何检查某个端口是否被占用?我又该如何验证 Linux 服务器中有哪些端口处于监听状态?

验证哪些端口在服务器的网络接口上处于监听状态是非常重要的。你需要注意那些开放端口来检测网络入侵。除了网络入侵,为了排除故障,确认服务器上的某个端口是否被其他应用程序占用也是必要的。比方说,你可能会在同一个系统中安装了 Apache 和 Nginx 服务器,所以了解是 Apache 还是 Nginx 占用了 # 80/443 TCP 端口真的很重要。这篇快速教程会介绍使用 netstatnmaplsof 命令来检查端口使用信息并找出哪些程序正在使用这些端口。

如何检查 Linux 中的程序和监听的端口

1、 打开一个终端,如 shell 命令窗口。 2、 运行以下任意一行命令:

sudo lsof -i -P -n | grep LISTEN
sudo netstat -tulpn | grep LISTEN
sudo nmap -sTU -O IP地址

下面我们看看这些命令和它们的详细输出内容:

方式 1:lsof 命令

语法如下:

$ sudo lsof -i -P -n
$ sudo lsof -i -P -n | grep LISTEN
$ doas lsof -i -P -n | grep LISTEN  ### OpenBSD

输出如下:

图 1:使用 lsof 命令检查监听端口和程序

仔细看上面输出的最后一行:

sshd    85379     root    3u  IPv4 0xffff80000039e000      0t0  TCP 10.86.128.138:22 (LISTEN)
  • sshd 是程序的名称
  • 10.86.128.138sshd 程序绑定 (LISTEN) 的 IP 地址
  • 22 是被使用 (LISTEN) 的 TCP 端口
  • 85379sshd 任务的进程 ID (PID)

方式 2:netstat 命令

你可以如下面所示使用 netstat 来检查监听的端口和程序。

Linux 中 netstat 语法

$ netstat -tulpn | grep LISTEN

FreeBSD/MacOS X 中 netstat 语法

$ netstat -anp tcp | grep LISTEN
$ netstat -anp udp | grep LISTEN

OpenBSD 中 netstat 语法

$ netstat -na -f inet | grep LISTEN
$ netstat -nat | grep LISTEN

方式 3:nmap 命令

语法如下:

$ sudo nmap -sT -O localhost
$ sudo nmap -sU -O 192.168.2.13 ### 列出打开的 UDP 端口
$ sudo nmap -sT -O 192.168.2.13 ### 列出打开的 TCP 端口

示例输出如下:

图 2:使用 nmap 探测哪些端口监听 TCP 连接

你可以用一句命令合并 TCP/UDP 扫描:

$ sudo nmap -sTU -O 192.168.2.13

赠品:对于 Windows 用户

在 windows 系统下可以使用下面的命令检查端口使用情况:

netstat -bano | more
netstat -bano | grep LISTENING
netstat -bano | findstr /R /C:"[LISTING]"

via: https://www.cyberciti.biz/faq/unix-linux-check-if-port-is-in-use-command/

作者:VIVEK GITE 译者:GHLandy 校对:oska874

本文由 LCTT 原创编译,Linux中国 荣誉推出

inkscape-gettingstarted

Inkscape 是一个流行的、功能齐全、自由而开源的矢量图形编辑器,它已经在 Fedora 官方仓库中。它特别适合创作 SVG 格式的矢量图形。Inkscape 非常适于创建和操作图片和插图,以及创建图表和用户界面设计。

cyberscoty-landscape-800px

使用 inkscape 创建的风车景色的插图

其官方网站的截图页上有一些很好的例子,说明 Inkscape 可以做些什么。 Fedora 杂志 Fedora Magazine 上的大多数精选图片也是使用 Inkscape 创建的,包括最近的精选图片:

communty

Fedora 杂志最近使用 Inkscape 创建的精选图片

在 Fedora 上安装 Inkscape

Inkscape 已经在 Fedora 官方仓库中了,因此可以非常简单地在 Fedora Workstation 上使用 Software 这个应用来安装它:

inkscape-gnome-software

另外,如果你习惯用命令行,你可以使用 dnf 命令来安装:

sudo dnf install inkscape

(开始)深入 Inkscape

当第一次打开程序时,你会看到一个空白页面,并且有一组不同的工具栏。对于初学者,最重要的三个工具栏是:Toolbar、Tools Control Bar、 Colour Palette:

inkscape_window

Toolbar提供了创建绘图的所有基本工具,包括以下工具:

  • 矩形工具:用于绘制矩形和正方形
  • 星形/多边形(形状)工具
  • 圆形工具:用于绘制椭圆和圆
  • 文本工具:用于添加标签和其他文本
  • 路径工具:用于创建或编辑更复杂或自定义的形状
  • 选择工具:用于选择图形中的对象

Colour Palette 提供了一种设置当前选定对象的颜色的快速方式。 Tools Control Bar 提供了工具栏中当前选定工具的所有设置。每次选择新工具时,Tools Control Bar 会变成该工具的相应设置:

绘图

接下来,让我们使用 Inkscape 绘制一个星星。 首先,从 Toolbar 中选择星形工具,然后在主绘图区域上单击并拖动。

你可能会注意到你画的星星看起来很像一个三角形。要更改它,请使用 Tools Control Bar 中的 Corners 选项,再添加几个点。 最后,当你完成后,在星星仍被选中的状态下,从 Palette(调色板)中选择一种颜色来改变星星的颜色:

inkscape-drawastar

接下来,可以在 Toolbar 中实验一些其他形状工具,如矩形工具,螺旋工具和圆形工具。通过不同的设置,每个工具都可以创建一些独特的图形。

在绘图中选择并移动对象

现在你有一堆图形了,你可以使用 Select 工具来移动它们。要使用 Select 工具,首先从工具栏中选择它,然后单击要操作的形状,接着将图形拖动到您想要的位置。

选择形状后,你还可以使用尺寸句柄调整图形大小。此外,如果你单击所选的图形,尺寸句柄将转变为旋转模式,并允许你旋转图形:

inkscape-movingshapes


Inkscape是一个很棒的软件,它还包含了更多的工具和功能。在本系列的下一篇文章中,我们将介绍更多可用来创建插图和文档的功能和选项。


作者简介:Ryan 是一名 Fedora 设计师。他使用 Fedora Workstation 作为他的主要桌面,还有来自 Libre Graphics 世界的最好的工具,尤其是矢量图形编辑器 Inkscape。


via: https://fedoramagazine.org/getting-started-inkscape-fedora/

作者:Ryan Lerch 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出