ssh无密码登入设置(完全版)/linux下免输入密码ssh登录

配置ssh不需要密码登录远程主机,网上有很多文章,但好像完整的不多,笔者参照操作,但得到消息:

Agent admitted failure to sign using the key.

原来是没有启动ssh-agent及把私钥加入到ssh-agent,参考如下文章得以解决问题。下文是完整的配置无密码登录ssh远程主机的方法,推荐参阅。

[注]正文来自http://www.jiangmiao.org/blog/559.html,在此表示感谢!

 

现有2台机器

1、服务器192.168.1.112

2、个人机192.168.1.110

要使110无需密码通过ssh登入112

步骤

1、创建密钥

miao@u32-192-168-1-110:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): (忽略)
Enter same passphrase again: (忽略)
Your identification has been saved in /home/miao/.ssh/id_rsa.
Your public key has been saved in /home/miao/.ssh/id_rsa.pub.

2、复制公密到服务器

miao@u32-192-168-1-110:~/.ssh$ scp id_rsa.pub miao@192.168.1.112:/home/miao/.ssh/192.168.1.110
miao@192.168.1.112's password:
id_rsa.pub                                                                   100%  404     0.4KB/s   00:00
miao@u32-192-168-1-110:~/.ssh$

3、添加公密到192.168.112的信任区域

miao@debian-192-168-1-112:~/.ssh$ cat 192.168.1.110 >> authorized_keys
miao@debian-192-168-1-112:~/.ssh$

注: 2,3两步可由命令ssh-copy-id一步到位

miao@ubuntu-192-168-1-110:~/.ssh$ ssh-copy-id miao@192.168.1.112
Password:
Now try logging into the machine, with "ssh 'miao@192.168.1.112'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

4、启动ssh-agent

如果ssh 192.168.112返回 Agent admitted failure to sign using the key
ps -Af | grep agent查看有无ssh-agent有无运行,若没有

miao@u32-192-168-1-110:~/.ssh$ ssh-agent

5、添加id_rsa到ssh-agent

miao@u32-192-168-1-110:~/.ssh$ ssh-add id_rsa

6、完成

from http://www.jiangmiao.org/blog/559.html

linux 下系统信息的查阅命令

这是文字版

系统信息

#uname -a                 #查看内核/操作系统/cpu信息

#cat /etc/issue        #查看操作系统版本

#cat /proc/version    #包含GCC的版本信息

#cat /proc/cpuinfo     #查看CPU信息

#hostname               #查看计算机名

#lspci -tv                    #列出所有pci设备

#lsusb -tv                   #列出所有usb设备

#lsmod                      #列出加载的内核模块

#env                          #查看环境变量

资源信息

#free -m              #查看内存使用量和交换区使用量

#df -h                    #查看各分区使用情况

#du -sh <目录名>  #查看指定目录的大小

#grep MemTotal /proc/meminfo  #查看内存总量

#grep MemFree /proc/meminfo  #查看空闲内存总量

#uptime           #查看系统运行时间,用户数,负载

#cat /proc/loadavg  #查看系统负载

 

磁盘信息

#mount | column -t    #查看挂接的分区状态

#fdisk -l                    #查看所有分区

#swapon -s                #查看所有交换分区

#hdparm -i /dev/hda   #查看磁盘参数(仅适用于ide设备)

#dmesg | grep IDE          #查看启动时IDE设备检测状况

 

网络信息

#ifconfig                       #查看所有网络接口的属性

#iptables -L                 #查看防火墙设置

#route -n                     #查看路由表

#netstat -lntp               #查看所有监听端口

#netstat  -antp             #查看已经建立的连接

进程信息

#ps -ef                         #查看所有进程

#top                             #实时显示进程状态

用户信息

#w                                  #查看活动用户

#id <用户名>                   #查看指定用户信息

#last                               #查看用户登录日志

#cut -d : -f1 /etc/passwd #查看系统所有用户                                   

#cut -d: -f1 /etc/group     #查看系统所有组

#crontab -l                       #查看当前用户的计划任务

支持中文变量的smarty模板引擎(修改版):程序与模板全部使用utf8编码的情况下,可以支持中文变量名

程序与模板全部使用utf8编码的情况下,可以支持中文变量名

smarty 基于smarty 3.0.6修改,只能用于utf-8编码的php程序+utf-8编码的模板(两者必须是utf-8!)

感谢maquan 的辛勤不懈的努力付出。

详细讨论过程,请参考这里 http://topic.csdn.net/u/20110304/09/6656b521-6d7b-4188-a9ca-316aafcd65b6.html

原smarty代码修改处:

3.0.6,在 Smarty/sysplugins/smarty_internal_templatelexer.php:455 附近有如下的内容:
function yylex2()
{
...
$yy_global_pattern = "...|^(0[xX][0-9a-fA-F]+)|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)/u";
...

改成下面的样子即可:

function yylex2()
{
...
$yy_global_pattern = "...|^(0[xX][0-9a-fA-F]+)|^([0-9]*[a-zA-Z_\\pL][\\w\\pL]*)|^(\\d+)|^(\\s+)|^(.)/u";
...

可以直接下载本文附件,如不放心,请按上述说明自行修改。

php与asp/vbscript对input表单数组的处理比较

php与asp/vbscript对input表单数组的处理比较

arrayform

啥也不用说,自己运行吧,很简单的几个小文件。

本站www.path8.net是linux主机,不能运行asp,不然倒可以在线运行代码了 ^=^

结论是,php比asp/vbs更合理,更先进,不要犹豫了,全面转战php吧!

——谨以此献给有志从asp转php、有志向自由软件(也包括开源软件)贡献一份力的同学们。

 

乱七八糟(一次聊天记录)

whoami 说:
域名目前都要通过国外主机转向,只要是国外主机的就可以。
someone 说:
哦,难道是要经过思科?检查信息是否合法然后才能上线?呵呵
whoami 说:
机房有规定,(当然其实还是朝廷的规定),服务器上开设的域名必须经过备案,否则发到后将直接关闭
所以只能把这些域名开设在国外主机上,通过国外主机跳转到我们做的专题站点上
备案可能几个月都搞不定,非常麻烦
someone 说:
哦,~~传说“朝廷”花了好多银子买相关的系统,原来是这么操作的。
呵呵,了解了好多~~谢啦~
whoami 说:
这是还不是那个传说中的G--,这一切是一大帮人,在人工检查审核的
someone 说:
呵呵,复杂。。
whoami 说:
传说中的gxx是在网络的国际接口上安装的一套设置+软件
someone 说:
哦~

百度爬虫蜘蛛ip地址表

百度蛛蛛有很多假冒user-agent的,可靠的蜘蛛ip有反向解析地址,例如

40.221.206.111.in-addr.arpa name = baiduspider-111-206-221-40.crawl.baidu.com.

分析某站点的日志,得到以下几个可靠的地址段,及抓取次数、地址数、示例ip等

subnet cral_times ip_count example
123.125.71.0 1106531 76 123.125.71.36
220.181.108.0 1101992 75 220.181.108.121
180.76.15.0 412563 60 180.76.15.145
111.206.221.0 15614 80 111.206.221.40

 

假冒蜘蛛(至少严重嫌疑)示例:113.97.50.220, 123.125.67.152, 113.99.114.197, 58.218.213.134, 114.95.226.126, 123.125.143.11, 117.177.97.16, 39.108.233.0, 27.148.157.107, 122.10.64.19, 103.29.23.132

邮箱域名的spf记录添加方法

什么是SPF
就是Sender Policy Framework。SPF可以防止别人伪造你来发邮件,是一个反伪造性邮件的解决方案。当你定义了你的domain name的SPF记录之后,接收邮件方会根据你的SPF记录来确定连接过来的IP地址是否被包含在SPF记录里面,如果在,则认为是一封正确的邮件,否则 则认为是一封伪造的邮件。关于更详细的信息请参考RFC4408(http://www.ietf.org/rfc/rfc4408.txt

如何增加SPF记录
非常简单,在DNS里面添加TXT记录即可。登陆http://www.openspf.org/在里面输入你的域名,点击Begin,然后会自动得到你域名的一些相关信息。
a 你域名的A记录,一般选择yes,因为他有可能发出邮件。
mx 一般也是yes,MX服务器会有退信等。
ptr 选择no,官方建议的。

a: 有没有其他的二级域名?比如:mail.abc.com和www不在一台server上,则填入mail.abc.com。否则清空。
mx: 一般不会再有其他的mx记录了。
ip4: 你还有没有其他的ip发信?可能你的smtp服务器是独立出来的,那么就填入你的IP地址或者网段。
include: 如果有可能通过一个isp来发信,这个有自己的SPF记录,则填入这个isp的域名,比如:hichina.com
~all: 意思是除了上面的,其他的都不认可。当然是yes了。

好了,点击Continue…..
自动生成了一条SPF记录,比如abc.com的是
v=spf1 a mx ~all
并且在下面告诉你如何在你的bind里面添加一条
abc.com. IN TXT “v=spf1 a mx ~all”

加入你的bind,然后ndc reload即可。
检查一下:
dig -t txt extmail.org

如果您的域名是由万网的dns服务器进行解析的,万网的网页上没有设置TXT记录的地方,但是如果你的DNS主server是在Hichina的,可以在diy.hichina.com上设置。设置完毕后您即可以通过使用spf策略进行垃圾邮件验证了。

SPF 的 TXT 记录

SPF 记录包含在一个 TXT 记录之中,格式如下:

  v=spf1 [[pre] type [ext] ] ... [mod]

每个参数的含义如下表所示:

参数 描述
v=spf1 SPF 的版本。如果使用 Sender ID 的话,这个字段就应该是 v=spf2
pre 定义匹配时的返回值。

可能的返回值包括:

返回值 描述
+ 缺省值。在测试完成的时候表示通过。
- 表示测试失败。这个值通常是 -all,表示没有其他任何匹配发生。
~ 表示软失败,通常表示测试没有完成。
? 表示不置可否。这个值也通常在测试没有完成的时候使用。
type 定义使用的确认测试的类型。

可能的值包括:

候选值 描述
include 包含一个给定的域名的测试
以 include:domain 的形式书写。

all 终止测试序列。
比如,如果选项是 -all,那么到达这条记录也就意味着测试失败了。但是如果无法确定,可以使用"?all"来表示,这样,测试将被接受。

ip4 使用 IPv4 进行验证。
这个可以以 ip4:ipv4 或 ip4:ipv4/cidr 的形式使用。建议使用这个参数,以减少域名服务器的负荷。

ip6 使用 IPv6 进行验证。

a 使用一个域名进行验证。
这将引起对域名服务器进行一次 A RR 查询。
可以按照 a:domain, a:domain/cidr 或 a/cidr 的形式来使用。

mx 使用 DNS MX RR 进行验证。
MX RR 定义了收信的 MTA,这可能和发信的 MTA 是不同的,这种情况基于 mx 的测试将会失败。
可以用 mx:domain, mx:domain/cidr 或 mx/cidr 这些形式进行 mx 验证。

ptr 使用域名服务器的 PTR RR 进行验证。
这时,SPF 使用 PTR RR 和反向图进行查询。如果返回的主机名位于同一个域名之内,就验证通过了。
这个参数的写法是 ptr:domain

exist 验证域名的存在性。
可以写成 exist:domain 的形式。

ext 定义对 type 的可选扩展。如果没有这个字段,那么仅使用单个记录进行问询。
mod 这是最后的类型指示,作为记录的一个修正值。

修正值 描述
redirect 重定向查询,使用给出的域名的 SPF 记录。
以 redirect=domain 的方式使用。

exp 这条记录必须是最后一条,允许给出一条定制的失败消息。

IN TXT "v=spf1 mx -all exp=getlost.example.com"

getlost IN TXT "You are not authorized to send mail for the domain"

[转]BSD差在Linux操作系统哪里/BSD与linux比较

很多人喜欢Linux操作系统,你了解Linux操作系统么?你为什么喜欢Linux操作系统呢?说到Free Software的OS,当属Linux,BSD相对来讲是冷门多了.但BSD的风评可不会比Linux差呀?那么是什么原因造成Linux比BSD更受 欢迎呢?

Linux是出现约在BSD官司缠身、以及Internet开始风行之际.Linux的开发者及爱好者正好能透过Internet实时得发布新闻、 发表新点子、提问讨论、递送程序代码及进行错误回报,这种藉由Internet的分布式合作方式带给Linux惊人的活力和无限的生命力,而经由 Internet所带来的这种活力和生命力正是Linux长久以来能和BSD分庭抗礼的主要原因之一.
Linus Torvalds的管理哲学:

也许LinusTorvalds并不是像BillJoy(BSD的开创者)那样是个天纵英才的程序设计师,但他无疑的是超一流的领导者.要知道,能 参与LinuxKernel开发的往往都不是什么泛泛之辈,Linus如何在这些天资聪颖的计算机怪才之间折冲樽俎是非常耐人寻味的.

硬件支持:
在Linux现身之时,刚好是人们开始买得起个人计算机时.但糟糕的是,当时的BSD对于当 时的个人计算机所使用的80386硬件的支持度并不好,而一般老百姓应该不太会为了玩BSD而特地购买高价的服务器设备,因此人们,尤其是穷苦的大学生, 若要玩Unix时只有Linux可供选择,相对来说BSD的吸引力当然就大不如Linux了.不过说起硬件支持,其实Linux和BSD也只是难兄难 弟,Linux是较佳,但有些太新太特殊及特定制造商的硬件Linux还是无法支持!

GNU的大力支援
GNU提供了一个操作系统所需的各式各样必要组件,但最重要的组件-Kernel却迟 迟没有着落.原本计划好要成为GNU官方Kernel的HURD的发展一直很不顺利,而Linux的出现就刚好出现填补了GNU这个拼图上最重要的一个大 洞.另外,虽然GNU的软件质量是毋庸置疑,但BSD却希望他们的开发团队所维护的核心工具都能以BSDL发行,所以因为授权兼容性的关系,很多GNU软 件就被BSD的人们摒除在外了.因此喜爱GNU软件的人们除了Linux之外就似乎别无选择了.Linux和GNU是分不开的:没有GNU,那么没有任何 工具程序的Linux根本无用武之地;而没了Linux,GNU软件就少了一个可以尽情发挥的舞台了.因此,个人可以接受人们说Linux的全名应该是 GNU/Linux.若我们仔细想想Linux的发展成长过程,个人认为如此称呼并不为过.

而Linus也说过其实他并不是很反对GNU/Linux这个名字,饮水思源,毕竟Linux的确是藉助了GNU太多的核心工具才有今天的成就.若 当时没有GNU计划,那么Linux根本不会出现在这个世界上:当初Linux0.0.1发表时,Linus就只完成了以下功能:可用GCC编译,然后它 能做的也只有执行BASH这个Shell而已,而这2个工具恰巧都是GNU的作品.我们可以看到,Linux刚开始就和GNU结下不解之缘了.

教堂与市集:
BSD走的是教堂式的学院派路线,而Linux则是代表了市集式的骇客精神;

多样的版本:
Linux的松散结构也反应在Linux的发行版上.因为Linux并没有什么官方发行版,所以任何人只要有兴趣有能力,都可以自行发行Linux,这使得我们能轻易得在Internet上找到超过200种以上的Linux发行版,而实际数字恐怕远不止如此.

商业公司的支持:
若说Linux为什么能快速得进入商用市场,我想RedHat的成立应该是一个关键性 的因素.对于大型企业而言,或许授权费用的多寡并不是重点,他们要的是能够说服上司及股东的解决方案.透过RedHat所提供的技术支持,信息部门也比较 敢将Linux列入解决方案之中.这项优势是没什么商业支持的BSD所难以匹敌的.

媒体的推波助澜:
若说到自由软件界的代表人物,我想人们脑海中会浮现的名单应该少不了 RichardM.Stallman、EricS.Raymond及LinusTorvalds这几位指标性人物.RichardM.Stallman是 公认的自由软件界的精神领袖,他的意见对于GNU还是具有一定的影响力.EricSteven Raymond则是黑客文化的传道士,他发表了不少像是《教堂与市集》、《提问的智慧》之类对黑客文化影响深远的文章.而Linus Torvalds则是Linux Kernel项目领导人.这几位指标人物彼此之间似乎总是意见不合,但他们却有一个共通点-他们都是Linux的拥护者.

也就是说,当几位自由软件界的代表人物都在努力为Linux宣传的同时,BSD自然从人们的雷达范围中消失了.不管BSD再怎么棒,但人们不晓得的话也是罔然.

GPLvs.BSDL:
RichardM.Stallman之所以是自由软件界的精神领袖,除了他发起 了GNU计划之外,个人认为他为了GNU而撰写的GPL更是决定性的因素.GPL是一种偏向于开发者的回馈条款:使用者可以自由运用GPL程序代码,但所 有修改必须也以GPL开放,让所有人(包括原始程序设计者)都能受益.这是能确保程序代码永远能让所有人自由使用的终极手段.相较之下,BSDL应该是偏 于使用者的一种无偿授权:使用者如何自由运用这些程序代码,程序设计师无权置喙,只要宣告这个软件是BSDL授权即可.因此,BSDL的软件可能有一天会 变成封闭软件,像Microsoft在Windows 2000核心里就采用了一些来自BSD的网络组件,但BSD的人们却没有因而受惠.Microsoft并没有必要回馈那些修改后的程序代码.

软件的支持:
也许这是互为因果关系,因为BSD家族的市占率比Linux低多了,BSD的开发者也相对 较少,因此有不少缺乏资源的开放原始码软件就没有多余的心力能放在BSD上,这导致很多软件对BSD的支持度就没Linux那么好了.以Free BSD为例好了.FreeBSD是针对i386硬件而开发的BSD分支,长久以来Free BSD在功能、稳定、安全、效能等各方面的表现颇受好评,您可以在Google上找到一篇"Yahoo! and FreeBSD"以为佐证.

通过本文你就了解了Linux操作系统比BSD更受到人们的欢迎了。

linux下PHP 激活mbstring扩展及php.ini中相关基本设置

从源码编译安装php,重新编译php,configure参数中加入 --enable-mbstring,如下所示,

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql\
 --with-apxs=/usr/local/apache/bin/apxs  --with-config-file-path=/usr/local/apache/conf --enable-mbstring

[注] 其它configure参数按你的php相关路径进行配置

redhat/centOS/fedora系列使用yum在线安装

sudo yum install php-mbstring
sudo /sbin/service httpd restart

Mac下可以如下进行

sudo port install php5-mbstring
apachectl restart

php程序中的编码转换

在php中解决字符编码转换,可以编写自定义的php函数进行字符编码解码,但是对性能有一定影响,并且要针对每种字符编码编写专用的函数; 这里介绍在php中有简便易用的专用函数:

1.使用iconv函数转换字符编码,该函数仅能在PHP4.0.5以上版本或PHP5.x版本使用,具体用法如下:

$string=iconv(原字符编码, 字符输出编码, $string);

例如:网页使用gbk编码,字符串使用utf-8编码,将字符转换为网页显示编码。

echo iconv("uft-8", "gbk", "php编码转换");

在实际使用中,iconv函数在转换时存在一点小bug,在转换字符串中含有"—"时会出错,导致字符串无法转换,使用//IGNORE参数可以忽略转换中的字符错误,样例如下:

echo iconv("uft-8", "gbk//IGNORE", "php编码转换");

2.使用mb_convert_encoding函数,该函数仅能在PHP4.0.6以上版本或PHP5.x版本使用,使用之前必须enable mbstring,具体用法如下:

$string=mb_convert_encoding($string, 字符输出编码, 原字符编码);

例如:网页使用gbk编码,字符串使用utf-8编码,将字符转换为网页显示编码。

echo mb_convert_encoding("php编码转换", "gbk", "utf-8");

windows下mbstring安装配置请参看这里 windows下PHP 激活mbstring扩展及php.ini中相关基本设置

总结:推荐使用mb_convert_encoding函数,该函数无iconv转换字符错误问题。

Pages: Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next