Xác thực phiên VNC với ConsolKit?


1

Tôi có một máy linux chạy Fedora 16 trong tủ. Nó không có màn hình hoặc bàn phím. Tôi kết nối với nó bằng cách sử dụng kết hợp vnc và ssh.

Gần đây, sau khi cập nhật, tôi gặp vấn đề với xác thực trên máy.

Nếu tôi vnc với nó, máy tính để bàn kde bật lên một hộp thoại báo lỗi cứ sau vài phút nói Authorization failed. Failed to obtain authentication.

Nếu tôi cắm vào ổ USB không lắp được, Cá heo sẽ báo cáo lại sự cố xác thực.

Tôi đã hạn chế thành công trong việc tìm giải pháp. AFAICT, đó là một vấn đề với ConsoleKit coi tôi là người dùng không phải là người địa phương để nó ngăn chặn xác thực.

Đây là đầu ra từ ck-list-sessions:

$ ck-list-sessions 
Session5:
        unix-user = '1000'
        realname = 'steve'
        seat = 'Seat6'
        session-type = ''
        active = FALSE
        x11-display = ':1'
        x11-display-device = ''
        display-device = ''
        remote-host-name = ''
        is-local = FALSE
        on-since = '2012-09-16T08:07:03.137011Z'
        login-session-id = '1'

Tôi đã cố gắng cập nhật .vnc/xstartuptập lệnh của mình để bao gồm ck-launch-sessionnhư sau:

$ cat ~/.vnc/xstartup 
#!/bin/sh

exec ck-launch-session vncconfig -iconic &
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XKL_XMODMAP_DISABLE=1
OS=`uname -s`
if [ $OS = 'Linux' ]; then
  case "$WINDOWMANAGER" in
    *gnome*)
      if [ -e /etc/SuSE-release ]; then
        PATH=$PATH:/opt/gnome/bin
        export PATH
      fi
      ;;
  esac
fi
if [ -x /etc/X11/xinit/xinitrc ]; then
  exec ck-launch-session /etc/X11/xinit/xinitrc
fi
if [ -f /etc/X11/xinit/xinitrc ]; then
  exec ck-launch-session sh /etc/X11/xinit/xinitrc
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
exec ck-launch-session xsetroot -solid grey
exec ck-launch-session xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
exec ck-launch-session twm &

Điều này đã không giúp đỡ.

Làm cách nào tôi có thể tự xác thực với ConsoleKit hoặc lừa nó tin rằng tôi là người dùng cục bộ?

Câu trả lời:


2

Bạn đang hiểu sai cách execck-launch-sessioncông việc.

  1. Mỗi lần ck-launch-sessionđược sử dụng, nó tạo ra một phiên mới . Điều này có nghĩa là bạn không thể thêm nó vào từng dòng Xstartup của mình - thay vào đó bạn phải khởi chạy toàn bộ tập lệnh Xstartup với ck-launch-session.

    Ví dụ: bạn có thể đổi tên xsessiontập lệnh thành xsession-real, sau đó chạy nó như thế này:

    exec ck-launch-session ~/.vnc/xsession-real
    
  2. Mỗi lần execđược sử dụng, nó sẽ thay thế quy trình hiện tại bằng quy trình mới. Nếu tập lệnh gọi exec xsetroot, phần còn lại của tập lệnh sẽ không được thực thi. Điều này có nghĩa là bạn phải sử dụng nó cho lệnh cuối cùng.

    (Lưu ý: Điều này không áp dụng khi &được sử dụng. Cả hai foo &exec foo &tương đương nhau; chúng chỉ thay thế quy trình con &tạo ra.)

    #!/bin/sh
    
    vncconfig -iconic &
    
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    export XKL_XMODMAP_DISABLE=1
    OS=`uname -s`
    if [ $OS = 'Linux' ]; then
      case "$WINDOWMANAGER" in
        *gnome*)
          if [ -e /etc/SuSE-release ]; then
            PATH=$PATH:/opt/gnome/bin
            export PATH
          fi
          ;;
      esac
    fi
    
    if [ -x /etc/X11/xinit/xinitrc ]; then
        exec /etc/X11/xinit/xinitrc
    elif [ -f /etc/X11/xinit/xinitrc ]; then
        exec sh /etc/X11/xinit/xinitrc
    fi
    
    [ -r ~/.Xresources ] &&
        xrdb ~/.Xresources
    xsetroot -solid grey
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    exec twm
    

cảm ơn vì đã phản hồi và giải thích tuyệt vời về cách thức hoạt động của các tiện ích này. Tôi đã làm đúng những gì bạn đề nghị; chạy exec ck-launch-session ~/.vnc/xstartup.real &. Nếu tôi khởi chạy vnc và sau đó ps -efnó hiển thị ck-launch-sessionđang chạy, nhưng phiên vnc của tôi vẫn chưa được xác thực. ck-list-sessionsvẫn hiển thị is-local=FALSEactive=FALSE
Steve Lorimer

is-local=FALSEsẽ được dự kiến, bởi vì phiên không phải là địa phương. Còn về active=... tôi thậm chí còn không biết ConsoleKit xác định hoạt động như thế nào. Tôi nhớ nó gặp rắc rối lớn với bất cứ thứ gì khác ngoài Xorg hoặc tty ...
grawity
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.