水曜以外もどうでしょう

北海道発。食べ歩きの記録グルメ情報や北海道の見どころなどをメモ替わりに書いています。

| PAGE-SELECT |

≫ EDIT

sshでパスワードなしでログインするために

パスワード無しにsshログインする方法。

(A)ssh-keygenで秘密鍵を作る時に、パスフレーズを空にする。
メリット:簡単。cronでのrsyncバックアップにも使える。
デメリット:秘密鍵を盗まれたとき、パス無しで使われてしまう。

(B)ssh-keygenで秘密鍵を作るときはパスフレーズは入れるが、ssh-agentでパスフレーズを管理する。
メリット:よりセキュリティが高い。
デメリット:シェル起動時に最初に一度はパスフレーズを打つ。cronで使うのは難しいか?



どちらの方法でも、まずはクライアント(ssh接続元)で秘密鍵/公開鍵を作成する。

パスフレーズを入力するのか、空にするかが運命の分かれ道。

※Mac OS Xで実行したので、$HOMEが/Users/myname。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/myname/.ssh/id_rsa): ↓Enter
Enter passphrase (empty for no passphrase): ↓※パスフレーズ
Enter same passphrase again: ↓※パスフレーズ確認
Your identification has been saved in /Users/myname/.ssh/id_rsa.
Your public key has been saved in /Users/myname/.ssh/id_rsa.pub.
The key fingerprint is:
60:06:1a:50:9d:de:f8:e2:45:fa:3f:81:40:cc:35:9f myname@hostname


id_rsa.pubの内容を
ログイン先マシンの~/.ssh/authorized_keys として保存する。
パーミッションは、
.sshは700
.ssh/authorized_keysは600

ここまでやると、(A)の場合にはパスワードなしでsshログイン出来てしまう。


(B)の場合には、

ssh-agentを使って、秘密鍵と対応するパスフレーズを登録する。

接続元(クライアント側)でssh-agentを起動
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
この後、秘密鍵id_rsaのパスフレーズを入力。

これで完了。

ただし、ssh-agentはログアウト時にkillする必要がある。
.bash_profileにssh-agentの起動を
.bash_logoutにkillを書いておくと便利なようだ。


★ついでに、cron+ssh+rsyncでバックアップ

1 0 * * * rsync -avz --delete -e ssh /home/myname myname@example.com:/home/myname/rsync/backup

(B)パターンで実行の場合、以下のエラーが出た。

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-with-mic,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(463) [sender=2.6.8]


cronで実行するスクリプトに、ssh-agentに絡む処理を追加すると大丈夫という情報もあるのだけど、結局パスフレーズの入力は避けられないような?

どうしたらいいのでしょうね。

情報はこのあたり。
http://ja.w3support.net/index.php?db=sf&id=92683




スポンサーサイト
応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| Linux系 | 03:38 | comments:0| trackbacks:0| TOP↑

≫ EDIT

ハイフン付きのファイルを削除する

Linuxにおいて、自分のミスで先頭がハイフンのファイルを作ってしまった。

---log

みたいな。

スクリプトで
2010-03-18-logみたいのを作るつもりが、ミスったぜ。

さて、消そう。

$ rm ---log

rm: 認識できないオプション`---log'です
Try `rm ./---log' to remove the file `---log'.
詳しくは `rm --help' を実行して下さい.

ガーン。

じゃ、

$ rm "---log"

で、

これもだめなのね。

意外と苦戦。

調べてみたら、

$ rm ./---log



$ rm -- ---log

で良いみたい。

これで消せた。
応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| Linux系 | 04:02 | comments:0| trackbacks:0| TOP↑

≫ EDIT

NETDEV WATCHDOG: eth0: transmit timed out

DELL PowerEdge 1950 + turbolinux 10 server
でネットワークが不安定になる現象あり。

とにかく頻繁に途切れる。sshもhttpもpop3も。

同一ルータ下のローカルなアクセスはできるが、
ルータの外に出られない。
ルータの外からアクセスできない。

今まで使えていたのに、ある日突然なった(そんなハズはないのだが)気がする。

ハード故障も疑ったが、どうも違うみたい。
だって、同じ環境下に同じ構成のマシンあり、2つともNGだったから。

ということは、ルータの問題?
とも思いつつ、ルータの設定を確認して再起動もしたがNG。

/var/log/messages
には、

NETDEV WATCHDOG: eth1: transmit timed out
bnx2: eth1 NIC Copper Link is Down
bnx2: eth1 NIC Copper Link is Up, 100 Mbps full duplex, receive & transmit flow control ON

あ、これか。

調べてみると、TSOをoffにするとうまく行く場合があるとのこと。

TSO(TCP Segmentation Offload)

引用

「TSOを利用することによって、TCPやUDPのチェックサムの計算、あるいはセグメンテーション処理などをイーサネットコントローラ側が担うことによって、CPU利用率の低減、ネットワーク処理性能の向上などが期待できます」

とのこと。

eth1000のドライバで、TSOがONだとうまく動かない場合があるみたい。

ということは、turbolinuxでNICドライバを更新したタイミングで
問題が発生しだしたのかも?

で、肝心のTSOをOFFにする方法は以下。

# /usr/sbin/ethtool -K eth0 tso off
# /usr/sbin/ethtool -K eth1 tso off
# /etc/rc.d/init.d/network restart

しばらく監視が必要だが、安定している様子。


いろいろ調べていたら、
turbolinuxのサイトにもそれらしいことが書いてあった。

http://www.turbolinux.co.jp/support/document/knowledge/763.html

サーバ再起動時にも有効にするため、
rc.localにも書くと良い。

[/etc/rc.local]
------------------------------------------------------
if [ -x /usr/sbin/ethtool ]; then
/usr/sbin/ethtool -K eth0 tso off
/usr/sbin/ethtool -K eth1 tso off
fi
------------------------------------------------------

今回の参考情報はこちら。

http://supli.x0.com/archives/2005/10/netdev_watchdog.html

≫ Read More

応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| Linux系 | 02:29 | comments:0| trackbacks:0| TOP↑

| PAGE-SELECT |