把你的本地主机用户的ssh公匙文件写入到远程主机用户的~/.ssh/authorized_keys文件中,具体方法
假设本地主机 test1,远程主机test2
一,在test1主机里的用户
运行 ssh-keygen -t rsa
结果如下
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bob/.ssh/id_rsa):
Created directory '/home/bob/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/bob/.ssh/id_rsa.
Your public key has been saved in /home/bob/.ssh/id_rsa.pub.
The key fingerprint is:
b7:99:2b:88:0b:02:1d:a0:d5:68:bd:bb:00:86:d2:d1 bob@www.vh1.com
会在bob用户目录~/.ssh /产生两个文件,id_rsa,id_rsa.pub
其中id_rsa 为私钥,id_rsa.pub为公钥
二,把id_rsa.pub 文件拷贝到test2主机的用户目录下,如root目录下
cat id_rsa.pub 把里面的内容复制到test2主机的用户目录 .ssh/authorized_keys中就可以了。
这样test1主机的用户就可以通过ssh而不用密码登陆 test2主机
注意:如果已经配置过git环境,就不用执行第一步了,直接把id_rsa.pub里面的复现粘贴到,你要拷贝到的主机用户目录的
.ssh/authorized_keys里面就可以了。
三、 现在我们把test1主机的内容copy到test2主机时就不需要提示密码了。
scp /root/a.txt root@test2:/root/ 不需要输入密码
如果要用其他用户去验证的话,那么在步骤二中我们就需要把公钥copy到对应用户的.ssh/authorized_keys即可 。
四 、通过上面三个步骤的实现 ,当我们写脚本来使用scp来copy文件时就很方便了
转载自:http://stephen830.iteye.com/blog/632748
一个Service,从本质上来说,可以有两种形式。
1、 通过startService()启动。这种情况下,该Service与启动它的组件是完全独立的,即使组件被销毁,Service仍会继续,不会自动结束,而且通常情况下不返回任何结果。因此,应在Service执行完毕后调用stopSelf(int)(最好用带参数的,防止一个Service被多个组件请求的情况下,把还在执行的请求结束了)或其他组件调用stopService关闭Service。
开始(onCreate -> onStart)过程,Service停止的时候直接进入销毁过程(onDestory).如果调用者(Activity)自己退出而没用调用stopService(),刚service会一直运行下去,直到下次调用者(Activity)再启动起来,并确调用stopService();
2、 通过bindService()启动。其生命周期与绑定该Service的组件有关,可以多个组件绑定一个Service,但当所有组件都解绑后,该Service将被销毁。但是当有组件绑定一个Service时,该Service无法以stopService或stopSelf的方式终止。 通过bindService启动,只会运行onCreate,这时将调用者(Activity)与service绑定在一起,如果调用者(Activity)退出,service就会调用onUnbind -> onDestroy.
无论何种方式启动,service只会创建一起,即onCreate只会执行一次。
默认情况下,任何组件都可以访问Service,但是我们可以在AndroidManifest.xml中将其声明为私有的,从而拒绝其他应用中的组件访问本应用的Service。通过设置intent-filter,可以使得Service能够被隐式调用。
同时,一个Service默认情况下运行在它的宿主进程的主线程(除非在AndroidManifest.xml中另行设置),因此,若要在一个Service中执行一些复杂的操作,最好在Service的执行代码中新建一个线程,在里面运行。这样能够降低系统出现Application Not Responding (ANR)错误的风险。
若只想在Activity运行时在后台执行某些操作,可以在Activity的onCreate中新建一个线程,在onStart中启动,在onStop中停止。而不是采用Service的方式。
热人