ページ「CentOS vim」と「OpenSSH 6.1p1」の間の差分

提供:あべたけの覚書
(ページ間の差分)
ナビゲーションに移動 検索に移動
(ページの作成:「※CentOS6.4で実施。 <br> ==インストールの確認== <syntaxhighlight lang="bash"> [root@XXXXX ~]# yum list installed | grep vim vim-common.i686 2:7.2.411-1.8.el6 @anaconda-CentOS-201303020136.i386/6.4 vim-enhanced.i686 2:7.2.411-1.8.el6 @anaconda-CentOS-201303020136.i386/6.4 vim-minimal.i686 2:7.2.411-1.8.el6 @anaconda-CentOS-201303020136.i386/6.4 </syntaxhighlight > vim-enhanced が無かったら yum でインストールする。 <…」)
 
(ページの作成:「==目的== せっかくなのでリモートでメンテを行えるようにする。<br> クライアントはWindowsXPで[http://www.chiark.greenend.org.uk/%7Esgtatham/putty/ PuTTy]を利用し、通信はSSHで暗号化する。 ==準備== <ul> <li>[http://www.gzip.org/zlib/ zlib] <syntaxhighlight lang="bash"> [root@XXXXX ~]# yum install zlib-devel </syntaxhighlight > <br> </li> <li>tcp_wrappers-devel <syntaxhighlight lang="bash"> [root@XXXXX ~]# yum install tc…」)
 
1行目: 1行目:
※CentOS6.4で実施。
==目的==
せっかくなのでリモートでメンテを行えるようにする。<br>
クライアントはWindowsXPで[http://www.chiark.greenend.org.uk/%7Esgtatham/putty/ PuTTy]を利用し、通信はSSHで暗号化する。
 
==準備==
<ul>
<li>[http://www.gzip.org/zlib/ zlib]
<syntaxhighlight lang="bash">
[root@XXXXX ~]# yum install zlib-devel
</syntaxhighlight >
<br>
</li>
<li>tcp_wrappers-devel
<syntaxhighlight lang="bash">
[root@XXXXX ~]# yum install tcp_wrappers-devel
</syntaxhighlight >
<br>
<br>
</li>
<li>[http://www.openssl.org/ OpenSSL]
</li>
</ul>


==インストールの確認==
==インストール==
<ol>
<li>'''ソースの取得'''
<syntaxhighlight lang="bash">
[root@XXXXX ~]# wget -P /usr/local/src http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz
</syntaxhighlight >
<br>
</li>
<li>'''ソースの解凍'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# cd /usr/local/src
[root@XXXXX ~]# tar zxvf openssh-6.1p1.tar.gz
</syntaxhighlight >
<br>
</li>
<li>'''コンパイル設定'''<br/>
([[OpenSSH 6.1p1のconfigureヘルプ]])
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
[root@XXXXX ~]# yum list installed | grep vim
[root@XXXXX ~]# cd /usr/local/src/openssh-6.1p1
vim-common.i686        2:7.2.411-1.8.el6 @anaconda-CentOS-201303020136.i386/6.4
[root@XXXXX ~]# ./configure \
vim-enhanced.i686      2:7.2.411-1.8.el6 @anaconda-CentOS-201303020136.i386/6.4
> --prefix=/usr/local/openssh-6.1p1 \
vim-minimal.i686        2:7.2.411-1.8.el6 @anaconda-CentOS-201303020136.i386/6.4
> --with-tcp-wrappers \
> --with-ssl-dir=/usr/local/ssl \
> --with-privsep-user=sshd \
> --with-privsep-path=/var/empty/sshd
</syntaxhighlight >
</syntaxhighlight >
vim-enhanced が無かったら yum でインストールする。
<br>
<br>
==エイリアスを追加==
'''tcp_wrappers-devel''' がないとconfigureの途中で怒られる。
vi コマンドで vim を起動するようにエイリアスを追加する。
(全ユーザーが対象。ユーザー個別にする場合はユーザー毎の ~/.bashrc へ記述する。)
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
[root@XXXXX ~]# vi /etc/bashrc
checking for libwrap... configure: error: *** libwrap missing
alias vi='vim'                      ← 最後にこの1行を追加
</syntaxhighlight >
</syntaxhighlight >
<br>
<br>
 
</li>
==vim の設定==
<li>'''インストール'''<br/>
参考:[http://www15.ocn.ne.jp/~tusr/index.html spanish passion Linux - Vim編]<br>
<syntaxhighlight lang="bash">
参考:[http://www10.atwiki.jp/bambooflow/ bambooflow Note - vim設定]<br>
[root@XXXXX ~]# make
[root@XXXXX ~]# make install
</syntaxhighlight >
<br>
<br>
 
</li>
設定を変更して利用しやすくする。
<li>'''シンボリックリンクの作成'''<br/>
(全ユーザーが対象。ユーザー個別にする場合はユーザー毎の ~/.bashrc へ記述する。)
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
[root@XXXXX ~]# vi /etc/vimrc
[root@XXXXX ~]# ln -s /usr/local/openssh-6.1p1 /usr/local/ssh
</syntaxhighlight >
</syntaxhighlight >
ファイルの最後に下記を追加。
<br>
<syntaxhighlight lang="vim">
</li>
" vim の独自拡張機能を使う(viとの互換性をとらない)
</ol>
set nocompatible
==設定==
<ol>
<li>'''sshd_confの設定'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# vi /usr/local/ssh/etc/sshd_config


  " ------------------------------------
  # Port 22
" バックアップ
" ------------------------------------~
Port 22
" バックアップをとらない
" バックアップをとるなら[ set backup ]
set nobackup


  " バックアップを作るディレクトリを指定する
  # SyslogFacility AUTH
" バックアップをとるなら必要
"set backupdir=~/backup
SyslogFacility AUTH


  " ------------------------------------
  # PermitRootLogin yes
" 検索
" ------------------------------------~
PermitRootLogin no                ← rootでのログインを禁止
" 検索時に大文字小文字を区別しない
" ただし検索語に大文字を混ぜると検索時に大文字を区別する
set ignorecase
set smartcase


  " 検索時にファイルの最後まで行ったら最初に戻る
  # PasswordAuthentication yes
" 逆は [ set nowrapscan ]
set wrapscan
PasswordAuthentication no        ← パスワードでのログインを禁止(鍵方式によるログインのみ許可)


  " インクリメンタルサーチ
  # PermitEmptyPasswords no
" 逆は [ set noincsearch ]
set incsearch
PermitEmptyPasswords no          ← パスワードなしでのログインを禁止
</syntaxhighlight >
<br>
</li>
<li>'''起動スクリプトのコピー'''<br/>
ソースの中にある起動スクリプトをコピーする
<syntaxhighlight lang="bash">
[root@XXXXX ~]# cp /usr/local/src/openssh-6.1p1/contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
</syntaxhighlight >
<br>
</li>
<li>'''起動スクリプトの編集'''<br/>
([[OpenSSH 5.9p1のデフォルト起動スクリプト]])
<syntaxhighlight lang="bash">
[root@XXXXX ~]# vi /etc/rc.d/init.d/sshd


" 検索語にマッチした単語をハイライトする
SSHD=/usr/sbin/sshd
" 逆は [ set nohlsearch ]
set hlsearch
SSHD=/usr/local/ssh/sbin/sshd
</syntaxhighlight >
start()の中
<syntaxhighlight lang="bash">
/usr/bin/ssh-keygen -A
/usr/local/ssh/bin/ssh-keygen -A
</syntaxhighlight >
<br>
</li>
<li>'''起動スクリプトの登録'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# chkconfig --add sshd
[root@XXXXX ~]# chkconfig sshd on
[root@XXXXX ~]# chkconfig --list sshd
sshd            0:off  1:off  2:off  3:on    4:on    5:on    6:off
</syntaxhighlight >
<br>
</li>
</ol>


" 起動時に前回の検索文字をハイライトしない
==鍵の作成==
set viminfo+=h
<ol>
 
<li>'''一般ユーザーで作成する'''<br/>
" -----------------------------------
<syntaxhighlight lang="bash">
  " 表示
[root@XXXXX ~]# su - hoge
" ------------------------------------
[hoge@XXXXX ~]$ /usr/local/ssh/bin/ssh-keygen -t rsa                  ← SSH2で公開鍵・秘密鍵を作成
  " タイトルを表示
Generating public/private rsa key pair.
  set title
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ← 鍵のファイル名を入力(空EnterでOK)
 
Created directory '/home/hoge/.ssh'
  " コマンドをステータス行に表示
Enter passphrase (empty for no passphrase):                  ← パスフレーズの入力
  set showcmd
Enter same passphrase again:                                ← パスフレーズの再入力
 
Your identification has been saved in /home/hoge/.ssh/id_rsa.
" 現在のモードを表示
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
set showmode
The key fingerprint is:
 
~鍵情報が表示される~
" タブの幅をスペース4つ分に設定する
</syntaxhighlight >
set tabstop=4
<br>
 
</li>
" 行番号を表示
<li>'''作成された鍵の確認'''<br/>
" 逆は [ set nonumber ]
<syntaxhighlight lang="bash">
set number
[hoge@XXXXX ~]$ cd .ssh
 
[hoge@XXXXX ~]$ ls -la
" 自動的にインデントする
合計 16
set autoindent
drwx------   2 XXXXX XXXXX 4096  3月  8 21:22 .
 
drwx------ 16 XXXXX XXXXX 4096  3月  8 20:33 ..
" タブ文字、行末など不可視文字を表示する
-rw-------   1 XXXXX XXXXX  951 3月 8 21:22 id_rsa      ← 秘密鍵
set list
-rw-r--r--   1 XXXXX XXXXX 241 3月 8 21:22 id_rsa.pub ← 公開鍵
 
</syntaxhighlight >
" listで表示される文字のフォーマットを指定する
<br>
" [eol:\ ] 改行記号を表す表示。左記は'\ '(\と半角スペース)。
</li>
" [tab:>\ ] タブの表示を決定する。左記は'>\ '(>と\と半角スペース)。
<li>'''公開鍵の名前の変更'''<br/>
" [trail:~] 行末に続くスペースを表す表示。
<ul>
" [extends:<] ウィンドウの幅が狭くて右に省略された文字がある場合に表示される。
<li>authorized_keysが既存の場合
" [precedes:>] extends と同じで左に省略された文字がある場合に表示される。
<syntaxhighlight lang="bash">
set listchars=eol:\ ,tab:>\ ,extends:<,trail:~
[hoge@XXXXX ~]$ cd ~/.ssh
 
[hoge@XXXXX ~]$ cat id_rsa.pub >> authorized_keys
" 括弧入力時に対応する括弧を強調する
[hoge@XXXXX ~]$ rm -f ~/.ssh/id_rsa.pub                                ← 元の鍵を削除
set showmatch
</syntaxhighlight >
 
</li>
" 色テーマ設定
<li>authorized_keysがない場合
colorscheme blue
<syntaxhighlight lang="bash">
 
[hoge@XXXXX ~]$ cd ~/.ssh
" ビジュアルベルを鳴らす
[hoge@XXXXX ~]$ mv id_rsa.pub authorized_keys
set visualbell
</syntaxhighlight >
 
</li>
" 常にステータス行を表示
</ul>
set laststatus=2
<br>
 
</li>
" ステータスラインに文字コードと改行文字を表示する
<li>'''公開鍵の権限の変更'''<br/>
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
<syntaxhighlight lang="bash">
 
[root@XXXXX ~]# chmod 400 ~/.ssh/authorized_keys
" コメント改行時に自動でコメントヘッダを挿入しない(ファイルタイプ:全て)
</syntaxhighlight >
autocmd FileType * set formatoptions-=ro
<br>
</li>
<li>'''フロッピーにコピー'''<br/>
id_rsaファイルをフロッピーにコピーする。<br/>
([[CentOS_Howto#フロッピーのマウント|フロッピーのマウント]]
<syntaxhighlight lang="bash">
[root@XXXXX ~]# cp /home/hoge/.ssh/id_rsa /mnt/floppy
</syntaxhighlight >
</syntaxhighlight >
<br>
</li>
</ol>
フロッピーにコピーされたid_rsaファイルを使用してPuTTyの接続設定を行う。

2023年5月11日 (木) 09:16時点における最新版

目的

せっかくなのでリモートでメンテを行えるようにする。
クライアントはWindowsXPでPuTTyを利用し、通信はSSHで暗号化する。

準備

  • zlib
    [root@XXXXX ~]# yum install zlib-devel


  • tcp_wrappers-devel
    [root@XXXXX ~]# yum install tcp_wrappers-devel


  • OpenSSL

インストール

  1. ソースの取得
    [root@XXXXX ~]# wget -P /usr/local/src http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz


  2. ソースの解凍
    [root@XXXXX ~]# cd /usr/local/src
    [root@XXXXX ~]# tar zxvf openssh-6.1p1.tar.gz


  3. コンパイル設定
    OpenSSH 6.1p1のconfigureヘルプ
    [root@XXXXX ~]# cd /usr/local/src/openssh-6.1p1
    [root@XXXXX ~]# ./configure \
    > --prefix=/usr/local/openssh-6.1p1 \
    > --with-tcp-wrappers \
    > --with-ssl-dir=/usr/local/ssl \
    > --with-privsep-user=sshd \
    > --with-privsep-path=/var/empty/sshd


    tcp_wrappers-devel がないとconfigureの途中で怒られる。

    checking for libwrap... configure: error: *** libwrap missing


  4. インストール
    [root@XXXXX ~]# make
    [root@XXXXX ~]# make install


  5. シンボリックリンクの作成
    [root@XXXXX ~]# ln -s /usr/local/openssh-6.1p1 /usr/local/ssh


設定

  1. sshd_confの設定
    [root@XXXXX ~]# vi /usr/local/ssh/etc/sshd_config
    
     # Port 22
    ↓
    Port 22
    
     # SyslogFacility AUTH
    ↓
    SyslogFacility AUTH
    
     # PermitRootLogin yes
    ↓
    PermitRootLogin no                ← rootでのログインを禁止
    
     # PasswordAuthentication yes
    ↓
    PasswordAuthentication no         ← パスワードでのログインを禁止(鍵方式によるログインのみ許可)
    
     # PermitEmptyPasswords no
    ↓
    PermitEmptyPasswords no           ← パスワードなしでのログインを禁止


  2. 起動スクリプトのコピー
    ソースの中にある起動スクリプトをコピーする
    [root@XXXXX ~]# cp /usr/local/src/openssh-6.1p1/contrib/redhat/sshd.init /etc/rc.d/init.d/sshd


  3. 起動スクリプトの編集
    OpenSSH 5.9p1のデフォルト起動スクリプト
    [root@XXXXX ~]# vi /etc/rc.d/init.d/sshd
    
    SSHD=/usr/sbin/sshd
    ↓
    SSHD=/usr/local/ssh/sbin/sshd

    start()の中

    /usr/bin/ssh-keygen -A
    ↓
    /usr/local/ssh/bin/ssh-keygen -A


  4. 起動スクリプトの登録
    [root@XXXXX ~]# chkconfig --add sshd
    [root@XXXXX ~]# chkconfig sshd on
    [root@XXXXX ~]# chkconfig --list sshd
    sshd            0:off   1:off   2:off   3:on    4:on    5:on    6:off


鍵の作成

  1. 一般ユーザーで作成する
    [root@XXXXX ~]# su - hoge
    [hoge@XXXXX ~]$ /usr/local/ssh/bin/ssh-keygen -t rsa                   ← SSH2で公開鍵・秘密鍵を作成
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ← 鍵のファイル名を入力(空EnterでOK)
    Created directory '/home/hoge/.ssh'
    Enter passphrase (empty for no passphrase):                  ← パスフレーズの入力
    Enter same passphrase again:                                 ← パスフレーズの再入力
    Your identification has been saved in /home/hoge/.ssh/id_rsa.
    Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
    The key fingerprint is:
    ~鍵情報が表示される~


  2. 作成された鍵の確認
    [hoge@XXXXX ~]$ cd .ssh
    [hoge@XXXXX ~]$ ls -la
    合計 16
    drwx------   2 XXXXX XXXXX 4096  3月  8 21:22 .
    drwx------  16 XXXXX XXXXX 4096  3月  8 20:33 ..
    -rw-------   1 XXXXX XXXXX  951  3月  8 21:22 id_rsa      ← 秘密鍵
    -rw-r--r--   1 XXXXX XXXXX  241  3月  8 21:22 id_rsa.pub  ← 公開鍵


  3. 公開鍵の名前の変更
    • authorized_keysが既存の場合
      [hoge@XXXXX ~]$ cd ~/.ssh
      [hoge@XXXXX ~]$ cat id_rsa.pub >> authorized_keys 
      [hoge@XXXXX ~]$ rm -f ~/.ssh/id_rsa.pub                                 ← 元の鍵を削除
    • authorized_keysがない場合
      [hoge@XXXXX ~]$ cd ~/.ssh
      [hoge@XXXXX ~]$ mv id_rsa.pub authorized_keys


  4. 公開鍵の権限の変更
    [root@XXXXX ~]# chmod 400 ~/.ssh/authorized_keys


  5. フロッピーにコピー
    id_rsaファイルをフロッピーにコピーする。
    フロッピーのマウント
    [root@XXXXX ~]# cp /home/hoge/.ssh/id_rsa /mnt/floppy


フロッピーにコピーされたid_rsaファイルを使用してPuTTyの接続設定を行う。