CentOS 공개키 인증으로 암호 없이 로그인

설치&설정|2014. 10. 18. 21:31

Client(PC)에서 키 생성

아래와 같이 ssh-keygen 명령을 이용해서 키를 생성하면, [home directory]/.ssh 디렉토리에 id_rsa.pub 파일이 생성된 것을 확인할 수 있습니다.

$ ssh-keygen -t rsa -C 'your@email.addr'
Generating public/private rsa key pair.
Enter file in which to save the key (/home/deployer/.ssh/id_rsa):
Created directory '/home/deployer/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/deployer/.ssh/id_rsa.
Your public key has been saved in /home/deployer/.ssh/id_rsa.pub.
The key fingerprint is:
df:07:63:c5:46:ff:9b:ac:03:b6:ed:70:b7:77:f2:1e your@email.addr
The key's randomart image is:
+--[ RSA 2048]----+
|              .  |
|             o . |
|              + .|
|             o  .|
|        S   +   .|
|         . = o. o|
|          o.=..E |
|           .o++ =|
|            .o.==|
+-----------------+

Server에서 키 등록

서버에서는 로그인 하려는 사용자의 홈디렉토리에 .ssh 디렉토리와 .ssh/authorized_key 파일을 생성하고, 파일 내용으로 id_rsa.pub 키를 넣어 줍니다.

$ cd ~
$ mkdir -m 700 .ssh
$ cd .ssh

### Client에서 생성한 id_rsa.pub 키 값을 내용으로       ###
### authorized_keys 파일을 ~/.ssh 디렉토리에 생성합니다 ###
$ echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvrdrApARFpicubfKHMVmNpEB6P3KsoVuXQOPPTPTOTveWsrYiPYesFSn6c9xaS3ZN8041A0/pIZU2clc94Rt+hPoU0Lgpv2nZ8WJoVPXNbHWRehF8VtrpOp4emnyi52wRtzGF7pBaazwRhNVFI1HF89IwEKX8LNXAsbOmpTR9HGZ5Y+qt2dZzRdX4s7G3ReqFa6t8lkErVolr9Z8HxyAZ9ubOQ58tK4uTnFdSAa1bRWeEKO/E+GfPnuMfFu2kT//9BrDDc2iy/eTtXL/3bJ4CNJ0ydDutGNP/H+D2IPgXx2ueawXVACSEQ4gczBTTTy/XJjHsaLiX23Z3eb+4BFvhQ== your@email.addr' >> authorized_keys

### authorized_keys 파일에 권한 설정                   ###
$ chmod 600 authorized_keys

Server에서 키 기반 인증 허용

/etc/ssh/sshd_config 파일의 내용을 확인한 후, 키 기반 인증이 허용이 안되어 있으면 수정한다.

아래와 같이 키 기반 인증에 관한 항목에 주석 처리가 되어 있으면 주석을 해제한다.

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile      .ssh/authorized_keys

sshd_config 파일을 수정했으면 sshd를 재시작한다.

$ service sshd restart

댓글()

Spring Tool Suite(STS)에 Subversion Plugin 설치

Developer Tools|2014. 10. 14. 13:42

Spring Tool Suite(STS)는 간편하게 Subversion(SVN) 플러그인을 설치하는 방법을 제공합니다.
아래의 방법으로 Subversive 혹은 Subclipse를 설치합니다.


먼저 Dashboard를 엽니다.

sts subversive dashboard menu


Dashboard가 열리면, Extensions 탭을 선택합니다.

sts subversive select tab


Find 필드에 Subversive/Subclipse를 입력하여 플러그인을 찾습니다(둘 중 하나만 설치하면 됩니다). 저는 Subversive를 찾았습니다. 검색 결과가 나오면 앞쪽의 체크박스를 선택합니다.

sts subversive find subversive


Install 버튼을 눌러서 설치를 진행합니다. 이후 검증/재시작 등에 대한 경고가 나오면 모두 Yes를 선택하여 설치를 완료합니다.

sts subversive install subversive

댓글()

네스프레소 16캡슐SET 케이스를 활용한 캡슐 보관함 제작

기타|2014. 10. 13. 15:47

20140927_111032

네스프레소 커피 머신을 구매하면 "16가지 그랑 크뤼 캡슐 박스"라는 것을 줍니다. 이 샘플용 케이스가 꽤나 탄탄하고 예뻐서 캡슐 보관함을 만들어 봤습니다.

20140927_111200

20140927_110319

샘플 케이스에 맞춰서 나무 틀을 만들고.

20140927_110335

20140927_110319

바닥으로 빠지지 않도록 나무 조각으로 막아 줬습니다.

20140927_110350

두 개만 붙였는데 하나쯤 추가 해주는게 좋을 걸 그랬습니다. 들어 올려서 캡슐을 고를라치면 조금 불안정합니다.

20140927_110357

틀은, 외관 상 깨끗하고 크게 힘을 받을일도 없을 것 같아서 모두 본드로 붙여서 완성했습니다.

사방에 있는 안쪽으로 돌출된 부분은 모두 칼로 잘라서 뚜껑이 부드럽게 열릴 수 있도록 합니다. 한 쪽에 두 개씩 모두 8개를 잘라내야 합니다.

20140927_110518

20140927_110455

본드가 굳기를 기다렸다가 캡슐을 가득 채운 샘플 케이스를 넣어 주면 완성입니다.

20140927_111103

댓글()

SonarQube Runner를 사용하여 프로젝트 분석하기

DevOps|2014. 8. 17. 17:11

다운로드

아래의 SonarQube Runner 페이지에서 다운로드할 수 있습니다.

Installing and Configuring SonarQube Runner

여기에서는 2.4 버전을 다운로드하여 사용했습니다.

설치

다운로드 받은 zip 파일을 원하는 경로를 지정하여 압축을 해제합니다. <설치 디렉토리>/conf/sonar-runner.properties 파일을 열어서 자신의 환경에 맞게 수정합니다. 동일한 PC에 SonarQube를 설치했고 기본 설정을 변경하지 않았으면, sonar.jdbc.* 속성의 주석을 해제하는 정도가 할일의 전부입니다.

저는 SonarQube 서버를 같은 PC에 설치했고 MySQL을 사용하고 있기 때문에 아래과 같이 설정을 완료했습니다.

#----- Default SonarQube server
sonar.host.url=http://localhost:9000

#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

#----- MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8

#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE

#----- Microsoft SQLServer
#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor

#----- Global database settings
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

#----- Security (when 'sonar.forceAuthentication' is set to 'true')
#sonar.login=admin
#sonar.password=admin

SONAR_RUNNER_HOME 시스템 환경변수를 만들고 그 값으로 [설치 디렉토리]를 설정합니다.

[설치 디랙토리]\bin 디렉토리(%SONAR_RUNNER_HOME%\bin)를 path에 추가합니다. 이제 SonarQube Runner의 설치가 완료되었습니다.

프로젝트 분석

분석할 프로젝트의 루트 디렉토리에 sonar-project.properties 파일을 생성합니다. 저는 Enyo Framework를 clone 한 후 분석했기 때문에 아래와 같이 내용을 채웠습니다.

source 디렉토리에 분석 할 JavaScript 소스 코드가 있어서 sonar.sources 속성 값으로 지정했으며, SonarQube Update Center에서 JavaScript 플러그인을 설치했습니다.

sonar.projectKey=Enyo
sonar.projectName=Enyo
sonar.projectVersion=2.3
sonar.sources=source
sonar.sourceEncoding=UTF-8

이제 명령 프롬프트를 띄우고 프로젝트 루트 디렉토리로 이동한 후, sonar-runner를 실행합니다(SonarQube 서버는 이미 동작 중이어야 합니다).

D:\dev\repos\enyo>sonar-runner
D:\dev\tool\sonar-runner
SonarQube Runner 2.4
Java 1.7.0_60 Oracle Corporation (32-bit)
Windows 7 6.1 x86
INFO: Runner configuration file: D:\dev\tool\sonar-runner\conf\sonar-runner.properties
INFO: Project configuration file: D:\dev\repos\enyo\sonar-project.properties
INFO: Default locale: "ko_KR", source code encoding: "UTF-8"
INFO: Work directory: D:\dev\repos\enyo\.\.sonar
INFO: SonarQube Server 4.4
16:06:33.508 INFO  - Load global settings
16:06:34.063 INFO  - User cache: C:\Users\heuser\.sonar\cache
16:06:34.087 INFO  - Install plugins
16:06:35.588 INFO  - Install JDBC driver
16:06:35.610 INFO  - Create JDBC datasource for jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
16:06:36.479 INFO  - Initializing Hibernate
16:06:45.716 INFO  - Loading technical debt model...
16:06:45.754 INFO  - Loading technical debt model done: 37 ms
16:06:45.772 INFO  - Load project settings
16:06:45.805 INFO  - Apply project exclusions
16:06:46.069 INFO  - -------------  Scan Enyo
16:06:46.131 INFO  - Load module settings
16:06:51.278 INFO  - Loading rules...
16:06:51.470 INFO  - Loading rules done: 192 ms
16:06:51.566 INFO  - Configure Maven plugins
16:06:51.697 INFO  - No quality gate is configured.
16:06:52.256 INFO  - Base dir: D:\dev\repos\enyo\.
16:06:52.257 INFO  - Working dir: D:\dev\repos\enyo\.\.sonar
16:06:52.259 INFO  - Source dirs: D:\dev\repos\enyo\source
16:06:52.262 INFO  - Source encoding: UTF-8, default locale: ko_KR
16:06:52.266 INFO  - Index files
16:06:54.633 INFO  - 120 files indexed
16:06:56.894 INFO  - Quality profile for js: Sonar way
16:06:56.939 INFO  - JaCoCo report not found.
16:06:56.944 INFO  - JaCoCo IT report not found.
16:06:56.947 INFO  - JaCoCo reports not found.
16:06:56.984 INFO  - Sensor QProfileSensor...
16:06:56.991 INFO  - Sensor QProfileSensor done: 7 ms
16:06:56.991 INFO  - Sensor JavaScriptSquidSensor...
16:06:57.060 INFO  - 120 source files to be analyzed
16:06:59.101 INFO  - 120/120 source files analyzed
16:06:59.491 INFO  - Sensor JavaScriptSquidSensor done: 2500 ms
16:06:59.491 INFO  - Sensor CpdSensor...
16:06:59.492 INFO  - SonarBridgeEngine is used for js
16:06:59.498 INFO  - Cross-project analysis disabled
16:07:01.143 INFO  - Sensor CpdSensor done: 1652 ms
16:07:01.143 INFO  - Sensor InitialOpenIssuesSensor...
16:07:01.179 INFO  - Sensor InitialOpenIssuesSensor done: 36 ms
16:07:01.179 INFO  - Sensor ProjectLinksSensor...
16:07:01.186 INFO  - Sensor ProjectLinksSensor done: 7 ms
16:07:01.188 INFO  - Sensor VersionEventsSensor...
16:07:01.196 INFO  - Sensor VersionEventsSensor done: 8 ms
16:07:01.196 INFO  - Sensor FileHashSensor...
16:07:01.203 INFO  - Sensor FileHashSensor done: 7 ms
16:07:01.396 INFO  - Execute decorators...
16:07:02.346 INFO  - Store results in database
16:07:05.655 INFO  - ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/Enyo
16:07:05.706 INFO  - Executing post-job class org.sonar.plugins.core.issue.notification.SendIssueNotificationsPostJob
16:07:05.774 INFO  - Executing post-job class org.sonar.plugins.core.batch.IndexProjectPostJob
16:07:06.051 INFO  - Executing post-job class org.sonar.plugins.dbcleaner.ProjectPurgePostJob
16:07:06.060 INFO  - -> Keep one snapshot per day between 2014-07-09 and 2014-08-05
16:07:06.061 INFO  - -> Keep one snapshot per week between 2013-08-07 and 2014-07-09
16:07:06.062 INFO  - -> Keep one snapshot per month between 2009-08-12 and 2013-08-07
16:07:06.065 INFO  - -> Delete data prior to: 2009-08-12
16:07:06.069 INFO  - -> Clean Enyo [id=33]
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
Total time: 38.279s
Final Memory: 11M/111M
INFO: ------------------------------------------------------------------------

분석이 정상적으로 완료되면 SonarQube에서 분석결과를 확인할 수 있습니다.

댓글()

SonarQube 설치 및 설정

DevOps|2014. 8. 5. 22:23

MySQL Database

설치

MySQL 다운로드 페이지에서 설치 파일을 받아서 설치하거나, 아래 링크의 글에서 MySQL 설치 절을 참고하여 MySQL을 설치합니다.

MySQL 5.0.45 원하는 위치에 수동 설치 및 윈도 서비스로 등록 하기

여기에서는 윗 글을 참고하여 수동 설치 했으며, 오래된 5.0.45 버전 대신 5.1 대의 최신 버전인 5.1.73 버전을 사용했습니다.

설정

SonarQube 설치 문서에서 InnoDB 사용을 권장하고 있기 때문에 my.ini 파일의 [mysqld] 옵션을 아래와 같이 수정했습니다.

query_cache_type, query_cache_size 옵션을 추가했고, innodb 관련 옵션(innodb_*)은 값을 수정한 부분이 많습니다.

innodb_data_home_dir, innodb_log_group_home_dir 경로는 본인의 설치 경로에 맞게 수정해 주세요.

[mysqld]
port        = 3306
socket      = MySQL
skip-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
query_cache_type = 1
query_cache_size = 32M

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
# 
#skip-networking
server-id   = 1

# Uncomment the following if you want to log updates
#log-bin=mysql-bin

# binary logging format - mixed recommended
#binlog_format=mixed

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = D:\\dev\\tool\\mysql\\data\\
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = D:\\dev\\tool\\mysql\\data\\
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 32M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

이제 명령 프롬프트를 하나 띄우고 database 스크립트 파일을 다운로드 받은 후 실행합니다.

D:\dev\tool\mysql\bin> mysql -u root -p < create_database.sql

sonar라는 이름의 Database와 사용자가 MySQL에 생성돼 있으면 스크립트가 잘 실행된 겁니다.

SonarQube

다운로드

아래 링크에서 SonarQube 4.4 버전을 다운로드 받아서 설치합니다. 만약 4.4 버전이 보이지 않으면 “Show all versions” 링크를 누르면 이전 버전이 보입니다.

http://www.sonarqube.org/downloads/

원하는 곳에 다운로드 받은 압축파일을 해제하면 설치는 완료입니다.

설정

SonarQube 설치 디렉토리 하위의 conf 디렉토리에 있는 sonar.properties 파일을 텍스트에디터로 엽니다. 아래와 같이 H2 database 관련 sonar.jdbc.url은 주석 처리하고, MySQL database 쪽의 주석은 없앱니다.

# Comment the following line to deactivate the default embedded database.
#sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar

# directory containing H2 database files. By default it's the /data directory in the SonarQube installation.
#sonar.embeddedDatabase.dataDir=
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092


#----- MySQL 5.x
# Comment the embedded database and uncomment the following line to use MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true

실행

SonarQube 설치 디렉토리 하위의 bin 디렉토리에는 각 플랫폼 별로 디렉토리가 구분되어 있습니다. 각자의 플랫폼에 맞는 디렉토리에 있는 실행파일로 SonarQube를 실행할 수 있습니다.

저는 Win32라서 [설치 디렉토리]\bin\windows-x86-32\StartSonar.bat 파일로 실행할 수 있었습니다.

MySQL을 먼저 실행한 후 SonarQube를 실행합니다. SonarQube 콘솔 창에 다음과 같이 웹서버가 시작되었다는 메시지가 나온 후, 브라우저에서 http://localhost:9000/에 접속하면 SonarCube Dashboards를 볼 수 있습니다.

wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    | 2014.08.05 13:58:09 INFO  Web server is started

이제 관리자 계정(admin/admin)으로 로그인한 후 플러그인 설치 등의 작업을 진행하면 됩니다.

댓글()